该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

终于找到了,前段时间研究jpg的时候,顺便做的一个实验,直接输出bmp文件。参考了微软的一个很老的代码里的字节对齐。。但愿对你有帮助吧。

#include

#include

// showdib.h 157行,字节对齐

#define WIDTHBYTES(i) ((i+31)/32*4)

int main()

{

BITMAPINFOHEADER bi;

memset(&bi, 0, sizeof(BITMAPINFOHEADER));

bi.biSize = sizeof(BITMAPINFOHEADER);

bi.biWidth = 25;

bi.biHeight = 25;

bi.biPlanes = 1;

bi.biBitCount = 24;

bi.biClrUsed = 0;

bi.biClrImportant = 0;

bi.biCompression = BI_RGB;

DWORD img_size = (DWORD)WIDTHBYTES(bi.biWidth * bi.biBitCount) * bi.biHeight;

BITMAPFILEHEADER bmfh;

bmfh.bfType = 0x4d42;

bmfh.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + img_size;

bmfh.bfReserved1 = 0; // must be 0

bmfh.bfReserved2 = 0;

bmfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);

unsigned char *img_data = new unsigned char[img_size];

unsigned char *p = img_data;

for(int i = 0; i < bi.biHeight; i++)

{

p += WIDTHBYTES(bi.biWidth*bi.biBitCount);

for(int j = 0; j < bi.biWidth * 3; j+=3)

{

*(p+j) = 0;//B

*(p+j+1) = 0;//G

*(p+j+2) = 255; //R

}

}

/// 神奇,居然写成功了。

FILE *fp = fopen("y.bmp", "wb");

fwrite(&bmfh, sizeof(BITMAPFILEHEADER), 1, fp);

fwrite(&bi, sizeof(BITMAPINFOHEADER), 1, fp);

fwrite(img_data, img_size, 1, fp);

fclose(fp);

delete[] img_data;

}

输出一个25*25红色的bmp文件,大至关键点有三个,第一,是以二进制方式写,第二,像素点写入顺序是BGR,也就是绿兰红,第三就是那个字节对齐问题。仅供你参考。

c语言截图代码,截图代码 哪位大神帮我找一下错,截出来的图是这样子的相关推荐

  1. 赫夫曼编码c语言 排序部分,c语言构造哈夫曼树输出哈夫曼编码出错 ,跪求大神帮我找错...

    c语言构造哈夫曼树输出哈夫曼编码出错 ,跪求大神帮我找错0 youxun0952016.09.07浏览120次分享举报 #include #include #include typedef struc ...

  2. 机顶盒ttl无法输入_哪位大神帮帮忙,B860 AV1.1 TTL 无法输入命令

    本帖最后由 wuli小茶 于 2018-1-27 11:10 编辑 求大神帮我下,请问这是什么情况,我想刷机,买了CH340G型号的USB转TTL模块,按教程连接后打开SecureCRT或putty都 ...

  3. ofdm解调中 累加器(2048个离散波点)代替积分 程序 哪位大神帮帮忙完全没有头绪

    ofdm解调中 积分 那部分可以用累加器代替 rom是512个点 一个T码元周期里有2048个点 与载波相乘之后的 累加器 完全不懂怎么写 求大神指导 写个程序参考 (T=2048)  MULT输出的 ...

  4. java thread 无法执行_哪位大神帮我讲一下这段代码,为什么线程不能继续执行

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.A ...

  5. c语言二进制转十六进制编程,哪位大神有 二进制转十六进制C语言程序

    满意答案 qraalapke 2017.04.12 采纳率:52%    等级:8 已帮助:162人 #include #include void convert(char *input, char  ...

  6. c语言模拟多级反馈队列调度算法实验报告,求助多级反馈队列调度算法的实现,哪位大神帮帮忙啊...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 [问题描述] 多级反馈队列调度算法是操作系统中CPU处理机调度算法之一,该算法既能使高优先级的进程(任务)得到响应又能使短进程(任务)迅速完成.UNIX操 ...

  7. matlab 2010无法运行程序,matalb r2010a安装后打开出现一系列警告,无法运行,哪位大神帮...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Matlab R2010a安装完成后的错误:Warning: D:\Program Files\MATLAB\R2010b\toolbox\local\p ...

  8. 手机写python脚本_手机需要,哪位大神帮编个Python脚本,谢谢

    #! /usr/bin/python import re Des = 'My Documents/MM' Source = 'Storage Card/Program Files/MobileMark ...

  9. c语言ns流程图1 2,请各位大神帮个忙,画个NS流程图,,急!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求平均成绩的!! #include #define M 5 #define N 3 void main() { void average_score(fl ...

最新文章

  1. 一种可以避免数据迁移的分库分表scale-out扩容方式
  2. 看动画轻松理解“递归”与“动态规划”
  3. 独家 | 是什么让数据科学家从优秀变得伟大?
  4. PHP-Curl模拟HTTP请求
  5. Codejock Xtreme Toolkit Pro v12.0.0 Full Release
  6. savexml php,PHP DOMDocument saveXML()用法及代码示例
  7. Loj #149. 01 分数规划(01分数规划模板题)
  8. 图解丨在嵌入式设备上实现HTTP服务器
  9. ubuntu共享文件夹文件看不到_实验08:轻松搭建文件夹共享
  10. java 静态成员 创建_Java学习笔记11---静态成员变量、静态代码块、成员变量及构造方法的初始化或调用顺序...
  11. Active Directory系列之二:部署第一个域
  12. Discuz = 7.2 SQL注入漏洞详情
  13. ECCV2020 | CPNDet:Anchor-free两阶段的目标检测框架,详解
  14. sysbench压测cpu,io,memory,threads,mutex
  15. delphi盒子那些软件商店里的年轻人
  16. 软件反破解的几个思路
  17. 平面设计师okr_还在头疼怎么写OKR,这可能是最全的落地指导手册了
  18. 最新手机语音助手的调研
  19. 求大神解答!!!!在线死等!
  20. SheetJS生成/解析Excel

热门文章

  1. GIF动画解析RNN,LSTM,GRU
  2. DRDS分布式SQL引擎—执行计划介绍
  3. MSSQL · 最佳实践 · 利用文件组实现冷热数据隔离备份方案
  4. HIRO 部署新一代可扩展边缘微型数据中心
  5. 谁说技术男不浪漫!90后程序员2天做出猫咪情绪识别软件
  6. 打破云原生时代存储瓶颈,SmartX 发布 K8s 云原生存储 IOMesh
  7. 从程序员到上市公司合伙人,怎么少踩坑?
  8. 浪潮商用机器亮相金博会 夯实新常态下金融科技发展基石
  9. 突发!Python再次第一,Java和C下降,凭什么? ​
  10. java queue源码_Java高并发系列之ArrayBlockingQueue源码解析