问题补充:xiangjie88 写道
麻烦你帮我看一下
保存图片方法
uint8_t *pRGBBuffer 是YUV转换出来的 RGB565 数据
int Create_RBG565_BMP(const char *filename, uint8_t *pRGBBuffer, int width, int height, int bpp)
{
BITMAPFILEHEADER bmpheader;
BITMAPINFO bmpinfo;
memset(&bmpheader, 0, sizeof(BITMAPFILEHEADER));
memset(&bmpinfo, 0, sizeof(BITMAPINFO));
FILE *fp = NULL;
fp = fopen(filename,"wr");
if(fp == NULL )
{
return 0;
}
bmpheader.bfType = 0x4D42;
bmpheader.bfReserved1 = 0;
bmpheader.bfReserved2 = 0;
bmpheader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
bmpheader.bfSize = bmpheader.bfOffBits + width*height*bpp/8;
bmpinfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmpinfo.bmiHeader.biWidth = width;
bmpinfo.bmiHeader.biHeight = height;
bmpinfo.bmiHeader.biPlanes = 1;
bmpinfo.bmiHeader.biBitCount = bpp; //RG565 biBitCount = 16
bmpinfo.bmiHeader.biCompression = 3;
bmpinfo.bmiHeader.biSizeImage = 0;
bmpinfo.bmiHeader.biXPelsPerMeter = 0;
bmpinfo.bmiHeader.biYPelsPerMeter = 0;
bmpinfo.bmiHeader.biClrUsed = 0;
bmpinfo.bmiHeader.biClrImportant = 0;
bmpinfo.bmiColors.rgbBlue = 0xF800 ;
bmpinfo.bmiColors.rgbGreen = 0x07E0 ;
bmpinfo.bmiColors.rgbRed = 0x001F ;
bmpinfo.bmiColors.rgbReserved = 0;
fwrite(&bmpheader,sizeof(BITMAPFILEHEADER),1,fp);
fwrite(&bmpinfo,sizeof(BITMAPINFO),1,fp);
fwrite(pRGBBuffer,width*height*bpp/8,1,fp);
fclose(fp);
fp = NULL;
return 1;
}
int result = Create_RBG565_BMP(path, (uint8_t *)pixels, 352,288,16);
转换后的图片效果看 http://219.136.249.57/pixel.bmp
相关推荐
这篇描述提到了一个名为`jpeg.c`的源代码文件,用于在Linux环境下将BMP(位图)格式的图像转换为JPG(联合图像专家组)格式。下面我们将详细探讨这个过程中的关键步骤和技术。 首先,要进行BMP到JPG的转换,我们...
1. BMP头数据:存储BMP的属性,如RGB数据的偏移量。 2. BMP信息数据:包含图片的宽度、高度、颜色位数等信息。 3. BMP图片源数据:即RGB888格式的数据,表示每个像素由红、绿、蓝三个颜色通道组成。 在编程时需要...
通过QImage的构造函数,我们可以将转换后的RGB数据加载到QImage对象中,然后显示在界面上或者保存为BMP文件。 总结来说,QT视频采集例子主要涉及以下几个技术点: 1. QT框架的使用,包括UI设计、事件处理等。 2. ...
例如,设置合适的颜色格式(RGB565、ARGB8888等)以匹配BMP图像的位深度。 6. **显示BMP图像**: 获取到帧缓冲的内存地址后,将BMP文件的像素数据写入相应位置即可显示图像。由于BMP的行填充特性,可能需要对写入...
VC2008项目打包,使用FFmpeg版本为2.2.2 win32bit ...*本程序实现了RGB像素数据转换为YUV像素数据 *是最简单的FFmpeg视频编码方面的教程。 *通过学习本例子可以了解FFmpeg的图片格式转换的过程。 */
BMP文件不进行任何压缩,保存的是原始像素数据,因此文件大但质量高。JPEG采用有损压缩算法,牺牲部分图像质量来换取较小的文件体积,适用于网页和网络分享。 2. **动态链接库(DLL)**:2JPG.DLL是一个动态链接库...
在C++编程中,截取屏幕图片并保存是一项常见的任务,尤其在开发桌面...5. 将位图数据保存为BMP文件。 在实际开发中,你可能需要根据具体需求调整和扩展这些步骤,例如添加错误处理、支持不同图像格式、优化性能等。
bin/hgr2rgb.exe [-bmp | -tga] filename -tga Output to .tga (default) -bmp Output to .bmp 例子: bin/hgr2rgb.exe -bmp hgr/archon2.hgr2 编译 Win32:MSVC2010.sln OSX: make Linux: make 截图
2. 保存位图:将数据缓冲区中的内容按照指定格式保存到文件,同时处理Alpha通道信息。 3. 设置透明度:允许用户为整个位图或单个像素设置透明度。 4. 绘制位图:在屏幕上或其他位图上绘制透明位图,这里需要考虑到...
"桌面图片 桌面图片 桌面图片"的主题集中于提供多样化的桌面背景选择,而"zhuomian.bmp"作为其中的一个例子,代表了这一资源集合中的一个具体位图文件。理解和利用好这些图片,不仅可以提升个人工作环境的舒适度,也...
基于嵌入式Linux的图像采集系统是一个典型的例子,通过结合专用的硬件设备和强大的操作系统,为用户提供了一种高效、可靠的数据采集解决方案。本文将深入探讨基于嵌入式Linux图像采集恢复和应用的技术细节,包括系统...
- **库文件位置**:通常Linux系统中的库文件位于`/usr/lib`或`/usr/local/lib`目录下。 - **链接静态库与动态库**:在编译时可以通过指定`-L`参数来链接库文件的位置。 #### 2.4 目录结构 - **头文件位置**:通常...
1. **图像打开和加载**:Pillow支持多种图像文件格式,包括JPEG、PNG、BMP、GIF、PPM、TIFF等,用户可以轻松地打开、读取和保存这些格式的图像。 2. **图像操作**:提供了丰富的图像处理函数,如裁剪、旋转、调整...
在文件I/O方面,CImg库支持多种常见的图像格式,如JPEG、PNG、BMP、TIFF等,可以方便地读取和保存图像文件。同时,它还提供了一些内置的示例和测试程序,这些程序展示了如何使用库中的各种功能。在提供的压缩包文件...
2. 图像加载与渲染:加载PNG或BMP等图像文件,将其显示在窗口上,理解图像的裁剪、旋转等操作。 3. 基本动画:通过更新渲染内容实现简单的动画效果,如移动的物体或旋转的图像。 4. 鼠标和键盘交互:响应鼠标点击...
- **loadimg.c**: 这可能是一个负责加载图像文件的源代码,如JPEG、PNG、BMP等格式,使用OpenCV的`cv::imread`函数。 4. **实际应用**: 使用OpenCV进行视频捕捉和采集的例子可以包括人脸识别、行为识别、物体追踪...
其主要目标是消除在OpenGL项目中加载和管理图像数据时的繁琐工作,例如读取常见的图像格式(如BMP、PNG、JPEG、TGA等)并将其转换为OpenGL纹理对象。 在OpenGL编程中,纹理是一个重要的组成部分,用于在3D模型表面...