嵌入式3-29

news2025/2/2 20:04:46

今日作业:用fwrite 和 fseek功能,将一张bmp格式的图片更改成 德国国旗
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
typedef unsigned char bgr[3];
int main(int argc, const char *argv[])
{
    FILE* fp = fopen("./photo.bmp","r");
    fseek(fp,2,SEEK_SET); 
    int bmp_size = 0;
    fread(&bmp_size,4,1,fp);
    printf("图片大小为:%d\nkb",bmp_size);
    int bmp_w = 0;
    int bmp_h = 0;
//从头往后偏移18个字节,定位存储宽度的的内存上
    fseek(fp,18,SEEK_SET);
    fread(&bmp_w,4,1,fp);
    fread(&bmp_h,4,1,fp);
    printf("图像分辨率为:%d*%d\n",bmp_w,bmp_h);
    fclose(fp);
    fp = fopen("./photo.bmp","r+");
//准备一个3字节内存,用来表示bgr像素点信息
    bgr c1={0,0,0};
    bgr c2={0,0,230};
    bgr c3={0,200,230};
//偏移54个字节,让光标定位在存放像素点的首地址上
    fseek(fp,54,SEEK_SET);
//    int count=bmp_w*bmp_h/3;
//  fwrite(c1,3,count,fp);
//     fwrite(c2,3,bmp_w * bmp_h/3,fp);
//     fwrite(c3,3,bmp_w * bmp_h/3,fp);
     for(int i=0;i<bmp_w;i++)
    {
        for(int j=0;j<=bmp_h/3;j++){
            fwrite(c3,3,1,fp);
        }
    }
    for(int i=0;i<bmp_w;i++)
    {
        for(int j=0;j<=bmp_h/3;j++){
            fwrite(c2,3,1,fp);
        }
    }
    for(int i=0;i<=bmp_w;i++)
    {
        for(int j=0;j<bmp_h/3;j++){
            fwrite(c1,3,1,fp);
        }
    }
    fclose(fp);
    return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1555171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从电荷角度理解开关电容中的电荷守恒

目录 一些铺垫电容的电荷量的解释电荷流入流出对节点电压的影响 从电荷角度理解开关电容加法器中的电荷守恒以开关电容积分器为例说明什么样的节点是电荷守恒 一些铺垫 电容的电荷量的解释 对于一个1F的电容&#xff0c;当它的压差为1V时&#xff0c;它所携带的电荷量是QCU1库…

在香港服务器搭网站速度怎么样?

在香港服务器搭网站速度怎么样&#xff1f;一般要看用户所在地理位置&#xff0c;如果用户距离香港服务器较远&#xff0c;网络延迟会增加&#xff0c;导致加载速度变慢。 面对海外地区用户&#xff0c;香港作为亚洲连接海外的网络中转枢纽&#xff0c;多条国际海底电缆&#…

浪潮信息AIStation与潞晨科技Colossal-AI 完成兼容性认证!

为进一步提升大模型开发效率&#xff0c;近年来&#xff0c;浪潮信息持续加强行业合作&#xff0c;携手业内头部&#xff0c;全面进攻大模型领域。日前&#xff0c;浪潮信息AIStation智能业务创新生产平台与潞晨科技Colossal-AI大模型开发工具完成兼容性互认证。后续&#xff0…

用grafana+prometheus+cadvisor监控容器指标数据,并查询当前容器的网速网络用量

前言 整理技术&#xff0c;在这篇文章中&#xff0c;将会搭建grafanaprometheuscadvisor监控容器&#xff0c;并使用一个热门数据看板&#xff0c;再监控容器的性能指标 dashboard效果 这个是node-exporter采集到的数据&#xff0c;我没装node-exporter&#xff0c;而且这也…

鸿蒙OS开发实例:【消息传递】

介绍 在HarmonyOS中&#xff0c;参考官方指导&#xff0c;其实你会发现在‘指南’和‘API参考’两个文档中&#xff0c;对消息传递使用的技术不是一对一的关系&#xff0c;那么今天这篇文章带你全面了解HarmonyOS 中的消息传递 概况 参照官方指导&#xff0c;我总结了两部分…

VSCode在文件生成添加作者,创建时间、最后编辑人和最后编辑时间等信息

一、安装插件 我使用的是 korofileheader 二、配置文件 左下角点击设置图标—设置—输入"ext:obkoro1.korofileheader"—点击"在setting.json中编辑" 进入后会自动定位到你添加信息的地方 "Author": "tom", "Date": "…

哈乐沃德变现喻久港:休闲游戏广告变现收入提升心得 | TOPON变现干货

12月10日&#xff0c;由罗斯基联合Topon、钛动科技共同主办的《游戏赛道新机会》主题系列沙龙在武汉举办。活动邀请了国内外多家业内知名公司的负责人到场分享&#xff0c;现场嘉宾分别从自己擅长的领域出发&#xff0c;通过数据分析&#xff0c;案例复盘等多个维度方向进行讲解…

02---java面试八股文——spring-------10题

11、spring 支持几种 bean scope&#xff1f; Spring bean 支持 5 种 scope&#xff1a; Singleton&#xff08;单例&#xff09;-&#xff1a;每个 Spring IoC 容器仅有一个单实例。Prototype&#xff08;原型&#xff09;&#xff1a; 每次请求都会产生一个新的实例。Reques…

Android R 广播注册与发送流程分析

静态广播注册时序图 动态广播注册时序图 发送广播时序图 前言 广播接收器可以分为动态和静态&#xff0c;静态广播接收器就是在 AndroidManifest.xml 中注册的&#xff0c;而动态的广播接收器是在代码中通过 Context#registerReceiver() 注册的。 这里先从静态广播的流程开始…

Unity类银河恶魔城学习记录11-7 p109 Aplly item modifiers源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili ItemData_Equipment.cs using System.Collections; using System.Collecti…

python 计算生态概览的概述

文章目录 前言python计算生态库的介绍1. 网络爬虫2. 数据分析3.文本处理4.数据可视化5. 机器学习6. 图形用户界面7. 游戏开发8. 网络应用开发 前言 python计算生态概览的解释 Python计算生态概览是对Python作为一门强大而广泛使用的编程语言所拥有的庞大软件集合的整体描述和…

【御控物联】 IOT异构数据JSON转化(场景案例一)

文章目录 前言技术资料 前言 随着物联网、大数据、智能制造技术的不断发展&#xff0c;越来越多的企业正在进行工厂的智能化转型升级。转型升级第一步往往是设备的智能化改造&#xff0c;助力设备数据快速上云&#xff0c;实现设备数据共享和场景互联。然而&#xff0c;在生产…

速通汇编(二)汇编mov、addsub指令

一&#xff0c;mov指令 mov指令的全称是move&#xff0c;从字面上去理解&#xff0c;作用是移动&#xff08;比较确切的说是复制&#xff09;数据&#xff0c;mov指令可以有以下几种形式 无论哪种形式&#xff0c;都是把右边的值移动到左边 mov 寄存器&#xff0c;数据&#…

【群晖】白群晖如何公网访问

【群晖】白群晖如何公网访问 ——> 点击查看原文 在使用默认配置搭建好的群晖NAS后&#xff0c;我们可以通过内网访问所有的服务。但是&#xff0c;当我们出差或者不在家的时候也想要使用应该怎么办呢&#xff1f; 目前白群提供了两种比较快捷的方式&#xff0c;一种是直接注…

奥比中光深度相机(二):PyQt5实现打开深度摄像头功能

文章目录 奥比中光深度相机&#xff08;二&#xff09;&#xff1a;PyQt5实现打开深度摄像头功能官方给出的调用深度相机源码环境精炼 UI界面设计逻辑代码构建槽函数连接提取视频流在界面中显示深度视频流注意关闭相机 总体代码效果演示运行main.py代码选择相机打开摄像头关闭摄…

【2】单链表

【2】单链表 1、单链表2、单链表的设计3、接口设计4、SingleLinkedList5、node(int index) 返回索引位置的节点6、clear()7、添加8、删除9、indexOf(E element) 1、单链表 &#x1f4d5;动态数组有个明显的缺点 &#x1f58a; 可能会造成内存空间的大量浪费 &#x1f4d5; 能否…

Elementor Pro最新学习版:强大的WordPress页面构建器插件

产品用途 Elementor Pro的核心功能包括拖放编辑器、前端编辑器、实时预览、允许导入和导出模板、支持35预建模板、多种营销工具和插件支持、多种排版选项、能够放置内联元素、Font Awesome图标支持、允许构建移动响应页面、登陆页面构建器、弹出窗口生成器、对评级系统的架构标…

linux 组建raid5详细操作

raid5最多运行损坏一个盘&#xff0c;最少3个盘&#xff0c;容量为少一块硬盘的容量之和。 如果硬盘数量较多&#xff0c;比如8块以上&#xff0c;建议用raid6&#xff0c;raid6最多允许两块硬盘损坏。 如果需要 一、安装raid软件 deb包 apt-get install mdadm或dnf包 dnf …

总结UDP各类知识点

前言 本篇博客博主将详细地介绍UDP有关知识点&#xff0c;坐好板凳发车啦~ 一.UDP特点 1.无连接 UDP传输的过程类似于发短信&#xff0c;知道对端的IP和端口号就直接进行传输&#xff0c;不需要建立连接&#xff1b; 2.不可靠传输 没有任何的安全机制&#xff0c;发送端发…

eNSP综合实验(PPP认证、VPN配置、RIP协议、NAT)

题目如上 第一步:配置IP地址 ip分配如下图所示 开始配置IP(PC省略&#xff09; R1&#xff1a; [R1]undo [R1]undo in [R1]undo info-centere [R1]undo info-center e [R1]undo info-center enable Info: Information center is disabled. [R1]int g0/0/0 [R1-Gigabit…