資源簡介
最近一個項目用到將TVP5150抓的RGB565 數據上傳,
但電腦無法顯示RGB565圖像,所以參考網絡上的代碼
稍微進行了調整,可以使用!
使用方法:
將RGB565文件放到工程或者DEBUG目錄下,文件名為test無擴展名
文件分辨率大小為 720x530
如果需要其它分辨率 可直接去代碼中修改 寬度和高度即可。
由于項目時間關系,沒有做參數直接傳入就能用的功能。
同時提供一個
BMP轉rgb565 的工具:
使用方法,調入圖片后,可以調整圖像的上下左右等。
然后點Save as 后彈出 轉換的輸出格式。
然后選擇你想要的rgb565即可。
但注意一點,轉出來的Data 的第一行要刪除掉(這行看起來是個數據頭)
剩下的全是圖像數據。

代碼片段和文件信息
//?rgb565.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
//主函數
#include?
#include?
#include?
#include?“rgb2bmp.h“
#include?
/****************************
??????RGB加上頭部信息轉換成BMP
??????參數說明:
??????rgb_buffer????????:RGB數據文件中的信息
??????nData?????????????:RGB數據的長度
??????nWidth????????????:圖像寬度的像素數
??????nHeight???????????:圖像高度的像素數
??????fp1???????????????:所存放的文件
*****************************/
int?RGB2BMP(unsigned?char?*rgb_bufferint?nWidthint?nHeightFILE*fp1)
{
?????BmpHead?m_BMPHeader;????????
?????char?bfType[2]={‘B‘‘M‘};
?????m_BMPHeader.imageSize=3*nWidth*nHeight+54;
?????m_BMPHeader.blank=0;
?????m_BMPHeader.startPosition=54;
?
?????fwrite(bfType1sizeof(bfType)fp1);
?????fwrite(&m_BMPHeader.imageSize1sizeof(m_BMPHeader.imageSize)fp1);
?????fwrite(&m_BMPHeader.blank1sizeof(m_BMPHeader.blank)fp1);
?????fwrite(&m_BMPHeader.startPosition1sizeof(m_BMPHeader.startPosition)fp1);
????????
?????InfoHead??m_BMPInfoHeader;
?????m_BMPInfoHeader.Length=40;?
?????m_BMPInfoHeader.width=nWidth;
?????m_BMPInfoHeader.height=nHeight;
?????m_BMPInfoHeader.colorPlane=1;
?????m_BMPInfoHeader.bitColor=24;
?????m_BMPInfoHeader.zipFormat=0;
?????m_BMPInfoHeader.realSize=3*nWidth*nHeight;
?????m_BMPInfoHeader.xPels=0;
?????m_BMPInfoHeader.yPels=0;
?????m_BMPInfoHeader.colorUse=0;
?????m_BMPInfoHeader.colorImportant=0;
?
?????fwrite(&m_BMPInfoHeader.Length1sizeof(m_BMPInfoHeader.Length)fp1);
?????fwrite(&m_BMPInfoHeader.width1sizeof(m_BMPInfoHeader.width)fp1);
?????fwrite(&m_BMPInfoHeader.height1sizeof(m_BMPInfoHeader.height)fp1);
?????fwrite(&m_BMPInfoHeader.colorPlane1sizeof(m_BMPInfoHeader.colorPlane)fp1);
?????fwrite(&m_BMPInfoHeader.bitColor1sizeof(m_BMPInfoHeader.bitColor)fp1);
?????fwrite(&m_BMPInfoHeader.zipFormat1sizeof(m_BMPInfoHeader.zipFormat)fp1);
?????fwrite(&m_BMPInfoHeader.realSize1sizeof(m_BMPInfoHeader.realSize)fp1);
?????fwrite(&m_BMPInfoHeader.xPels1sizeof(m_BMPInfoHeader.xPels)fp1);
?????fwrite(&m_BMPInfoHeader.yPels1sizeof(m_BMPInfoHeader.yPels)fp1);
?????fwrite(&m_BMPInfoHeader.colorUse1sizeof(m_BMPInfoHeader.colorUse)fp1);
?????fwrite(&m_BMPInfoHeader.colorImportant1sizeof(m_BMPInfoHeader.colorImportant)fp1);
?????fwrite(rgb_buffer3*nWidth*nHeight1fp1);
?????return?0;
}
int?main(int?argc?char*?argv[])
{????FILE*?p;
/***************??input?data??***********
????filename??????:RGB數據文件名稱
????nWidth????????:所生成文件的水平像素
????nHeight???????:所生成文件的垂直像素
????newFile???????:最終生成文件的名稱
***********************************************/
????char*?filename?=?“test“;
????int?nWidth?=?720;
????int?nHeight?=?530;
????char*?newFile?=?“test.bmp“;
int?num;
????p?=?fopen(filename“rb“);
????if?(p?==?NULL)
????{
????????printf(“!!!file?%s?open?failed.n“?filename);
????????return?0;
????}
????printf(“file?%s?open?success\n“filename);
/***********??read?Image?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????113664??2011-06-29?15:28??RGB-BMP互轉\bmp轉rgb565\BmpCvt.exe
?????文件?????254001??2015-09-29?17:46??RGB-BMP互轉\RGB565轉BMP\Debug\rgb565.exe
?????文件?????369084??2015-09-29?17:46??RGB-BMP互轉\RGB565轉BMP\Debug\rgb565.ilk
?????文件??????16672??2015-09-29?17:46??RGB-BMP互轉\RGB565轉BMP\Debug\rgb565.obj
?????文件?????203728??2015-09-29?17:04??RGB-BMP互轉\RGB565轉BMP\Debug\rgb565.pch
?????文件?????590848??2015-09-29?17:46??RGB-BMP互轉\RGB565轉BMP\Debug\rgb565.pdb
?????文件???????1814??2015-09-29?17:04??RGB-BMP互轉\RGB565轉BMP\Debug\StdAfx.obj
?????文件?????763200??2015-09-29?16:48??RGB-BMP互轉\RGB565轉BMP\Debug\test
?????文件??????74752??2015-09-30?09:15??RGB-BMP互轉\RGB565轉BMP\Debug\vc60.idb
?????文件?????110592??2015-09-29?17:46??RGB-BMP互轉\RGB565轉BMP\Debug\vc60.pdb
?????文件???????1208??2015-09-29?13:53??RGB-BMP互轉\RGB565轉BMP\ReadMe.txt
?????文件???????3092??2015-09-29?14:05??RGB-BMP互轉\RGB565轉BMP\rgb2bmp.h
?????文件???????4213??2015-09-29?17:46??RGB-BMP互轉\RGB565轉BMP\rgb565.cpp
?????文件???????4536??2015-09-29?13:53??RGB-BMP互轉\RGB565轉BMP\rgb565.dsp
?????文件????????535??2015-09-29?13:53??RGB-BMP互轉\RGB565轉BMP\rgb565.dsw
?????文件??????50176??2015-09-30?09:16??RGB-BMP互轉\RGB565轉BMP\rgb565.ncb
?????文件??????53760??2015-09-30?09:16??RGB-BMP互轉\RGB565轉BMP\rgb565.opt
?????文件????????246??2015-09-29?17:47??RGB-BMP互轉\RGB565轉BMP\rgb565.plg
?????文件????????293??2015-09-29?13:53??RGB-BMP互轉\RGB565轉BMP\StdAfx.cpp
?????文件????????769??2015-09-29?13:53??RGB-BMP互轉\RGB565轉BMP\StdAfx.h
?????文件?????763200??2015-09-29?16:48??RGB-BMP互轉\RGB565轉BMP\test
?????文件????????581??2015-09-30?09:54??RGB-BMP互轉\說明.txt
?????目錄??????????0??2015-09-30?09:51??RGB-BMP互轉\RGB565轉BMP\Debug
?????目錄??????????0??2015-09-30?09:52??RGB-BMP互轉\bmp轉rgb565
?????目錄??????????0??2015-09-30?09:51??RGB-BMP互轉\RGB565轉BMP
?????目錄??????????0??2015-09-30?09:54??RGB-BMP互轉
-----------?---------??----------?-----??----
??????????????3380964????????????????????26
- 上一篇:異形窗口與gif動畫帶透明背景的實現
- 下一篇:Unity 3D小游戲
評論
共有 條評論