通过c语言访问bmp图片文件修改图片信息
在c语言中访问设定路径下的bmp图片文件,修改图片中像素RGB信息,从而达到修改图片中颜色的目的。
本程序实现的是将原图片中蜡笔小新的眼睛和嘴巴改了。
#include <head.h>
typedef struct
{unsigned char B;unsigned char G;unsigned char R;
} rgb_t;int main(int argc, const char *argv[])
{rgb_t rgb;FILE *fp;int i = 0;int j = 0;if (argc != 2){fprintf(stderr, "input error\n");fprintf(stderr, "usage:./a.out picturename\n");}if ((fp = fopen(argv[1], "r+")) == NULL)PRINT_ERR("fopen error");fseek(fp, (712 - 190) * 700 * 3, SEEK_SET);while (i < 50){fseek(fp, 290 * 3, SEEK_CUR);while (j < 50){rgb.B = 255;rgb.G = 0;rgb.R = 0;fwrite(&rgb, 3, 1, fp); j++;}fseek(fp, 75 * 3, SEEK_CUR);j = 0;while (j < 50){rgb.B = 255;rgb.G = 0;rgb.R = 0;fwrite(&rgb, 3, 1, fp); j++;}fseek(fp, 235 * 3, SEEK_CUR);j = 0;i++;}fseek(fp, 70*700*3, SEEK_CUR);i=0;j=0;fseek(fp, (712-330)*700*3, SEEK_SET);while(i<20){fseek(fp, 290*3, SEEK_CUR);while(j<20){rgb.B = 0;rgb.G = 255;rgb.R = 0;fwrite(&rgb, 3, 1, fp); j++;}j=0;fseek(fp, 390*3, SEEK_CUR);i++;}return 0;
}
程序运行前图片:
程序运行后图片:
通过c语言访问bmp图片文件修改图片信息相关推荐
- C语言实现BMP图片的放大缩小
C语言实现BMP图片的放大缩小 BMP图片简介:BMP图片是windows操作系统中的标准图像文件格式,可以分为两类:设备相关位图(DDB)和设备无关位图(DIB),使用广泛.它采用位映射存储格式,除 ...
- C语言实现bmp图片裁剪
C语言实现bmp图片裁剪 bmp图片如何储存的,在这篇文章中有很好的介绍:https://blog.csdn.net/weixin_46987028/article/details/109171867 ...
- C实现几种对BMP图片文件的处理
#C实现几种对BMP图片文件的处理 ##什么是BMP文件? BMP(全称Bitmap-File)是Windows操作系统中的一种标准的图像文件格式,能够被多种Windows应用程序所支持.随着Wind ...
- c语言编程读取bmp文件数据,c语言读取BMP图片的RGB数据
BMP图片是位图(bitmap),一般未压缩,要读取BMP文件只要知道它的文件结构就可以了,具体格式可以百度或者google,就不多说了,几个重要的点在代码里面有注释. /** c语言读取位图信息 * ...
- 【数据压缩】C语言实现bmp图片序列生成yuv视频
一.实验要求 1.解析BMP格式文件,获取图像信息 2.转化BMP图像为YUV格式的图像 3.多张BMP图像,转化为YUV视频 二.实验内容 1.获取图片 获取(540*720)的bmp图片若干: 2 ...
- c语言给bmp图片加水印
在 C 语言中,可以使用如下的步骤来给 BMP 图片添加水印: 打开图片文件,并读取图片文件头信息. 读取图片像素数据,并将其存储在内存中. 在内存中修改图片像素数据,实现对图片的修改. 将修改后的图 ...
- 让 Android 可以识别BMP图片文件,且目前Android所支持的所有图片格式
在Android自带到图片浏览器中,默认是不支持BMP格式的图片文件到,通过修改源码使得它支持BMP文件. Android 的图片编码解码是由 Skia 图形库负责的,Skia 通过挂接第三方开源 ...
- 用c语言处理bmp开运算,c语言解析bmp图片
心血来潮想了解下常用图片的格式解析,翻看了一些资料后,发现最简单的是bmp格式,所以先拿它开刀. BMP格式 这种格式内的数据分为三到四个部分,依次是: 文件信息头 (14字节)存储着文件类型,文件大 ...
- 【图像处理基础】C语言对bmp图片进行处理
1.bmp文件的定义 #ifndef IMAGE_H #define IMAGE_H void image_info(FILE* file); void image_save(FILE *file); ...
最新文章
- Linux08-日志
- oracle11中过程continue,Oracle 11g OCM备考之创建EM与EM登陆异常的处理
- android studio中能用的各种转义字符
- java调节音量代码_用Java调用VC音量控制程序_java
- 外部定义了一个数组,在函数内用指针对其操作
- 虚拟化—用新的视角看IT
- js tooltip之wz_tooltip使用方法和参数备忘
- 最好用的卸载软件工具(Your Uninstaller! PRO)
- 软件系统设计-1-软件设计原则
- 高级程序员与初级程序员差别在哪里?
- C# 下繁体字与简体字的转化
- 快递鸟即时查询(PHP)
- 奋斗的青春,无悔的时光
- android adb 电池电量,adb 查看电池状态信息。详解
- “差生”韩寒难以改变的人生戏码
- 【笔记】《Federated Learning With Blockchain for Autonomous Vehicles Analysis and Design Challenges》精读笔记
- android获取短信中心号
- 网络安全笔记--文件上传1(文件上传基础、常见后端验证、黑名单、白名单、后端绕过方式)
- Java 父类的引用指向子类对象有啥用 总结
- OrangePi3开发板使用指南
热门文章
- 微信小程序界面设计小程序中CSS3样式精通课程-渐变Gradients-使用透明度(transparent)
- 什么是分布式 (个人理解)
- Upload-labs 1-21关 靶场通关笔记(含代码审计)
- 最简单的C程序Hello world!详解
- 【带你看看JS生态圈的技术趋势】state-of-js 2021 详细解读
- LoadRunner Controller监控画面没有数据显示
- git切换分支遇到的小问题
- PPT神技能,如何使用PPT制作炫酷视频?我想你还是不会吧!
- html 打印预览跟实际不一样,excel打印预览与实际不符(excel应对打印结果与画面显示有误差的方法)...
- Win10安装nginx笔记