資源簡介
vc圖像編程實例:jpeg格式轉換成bmp
vc圖像編程實例:jpeg格式轉換成bmp
vc圖像編程實例:jpeg格式轉換成bmp
vc圖像編程實例:jpeg格式轉換成bmp

代碼片段和文件信息
//?jpegcompresstest.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
#include?
#include?
#include?
extern?“C“
{
#include?“..\libjpeg\jpeglib.h“
}
BYTE?srcBmpP[4096000];
//BYTE?jpeg_buffer[409600]; //用于內存/
//?unconditional?swaps
#define?Swap16(s)?\
((short)?((((s)?&?0xff)?<8)?|?(((s)?>>?8)?&?0xff)))
#define?Swap32(l)?\
((int)?((((l)?&?0xff000000)?>>?24)?|?\
(((l)?&?0x00ff0000)?>>?8)??|?\
(((l)?&?0x0000ff00)?<8)??|?\
(((l)?&?0x000000ff)?<24)))
void?Screen(char?filename[])
{
//獲取當前整個屏幕DC
HDC?hDC?=?GetDC(NULL);
//獲得顏色模式
int?BitPerPixel?=?GetDeviceCaps(hDC?BITSPIXEL);
int?Width?=?GetDeviceCaps(hDC?HORZRES);
int?Height?=?GetDeviceCaps(hDC?VERTRES);
//創建與獲得的CDC兼容的內存設備描述
HDC?hMemDC?=?CreateCompatibleDC(hDC);
//建立和屏幕兼容的bitmap
HBITMAP?hMemBitmap?hOldMemBitmap;
//初始化memBitmap
hMemBitmap?=?CreateCompatibleBitmap(hDC?Width?Height);
//將memBitmap選入內存DC
hOldMemBitmap?=?(HBITMAP)Selectobject(hMemDC?hMemBitmap);
//復制屏幕圖像到內存DC
BitBlt(hMemDC0?0?Width?Height?hDC?0?0?SRCCOPY);
//以下代碼保存hMemDC中的位圖到文件
BITMAP?bmp;
//獲得位圖信息
Getobject(?hMemBitmap?(int)sizeof(BITMAP)?&bmp?);
// FILE?*fp?=?fopen(filename?“w+b“);
//位圖信息頭?
BITMAPINFOHEADER?bih?=?{0};
//每個像素字節大小
bih.biBitCount?=?bmp.bmBitsPixel;
//無壓縮
bih.biCompression?=?BI_RGB;
//高度
bih.biHeight?=?bmp.bmHeight;
bih.biPlanes?=?1;
bih.biSize?=?sizeof(BITMAPINFOHEADER);
//圖像數據大小
bih.biSizeImage?=?bmp.bmWidthBytes?*?bmp.bmHeight;
//寬度
bih.biWidth?=?bmp.bmWidth;
//位圖文件頭
BITMAPFILEHEADER?bfh?=?{0};
//到位圖數據的偏移量
bfh.bfOffBits?=?sizeof(BITMAPFILEHEADER)?+?sizeof(BITMAPINFOHEADER);
//文件總的大小
bfh.bfSize?=?bfh.bfOffBits?+?bmp.bmWidthBytes?*?bmp.bmHeight;
//字符“BM“,表示位圖文件
bfh.bfType?=?(WORD)0x4d42;
//寫入位圖文件頭?
// fwrite(&bfh?1?sizeof(BITMAPFILEHEADER)?fp);
//寫入位圖信息頭
// fwrite(&bih?1?sizeof(BITMAPINFOHEADER)?fp);
//申請內存保存位圖數據
//BYTE?*?p?=?new?BYTE[bmp.bmWidthBytes?*?bmp.bmHeight];
//獲取位圖數據
GetDIBits(hMemDC?hMemBitmap?0?Height?srcBmpP?(LPBITMAPINFO)?&bih?DIB_RGB_COLORS);
//寫入位圖數據
// fwrite(srcBmpP?1?bmp.bmWidthBytes?*?bmp.bmHeight?fp);
// delete?[]?p;
// fclose(fp);
Selectobject(hMemDC?hOldMemBitmap);?
}
int?image_width?=?1280;?//不是固定需要獲取
int?image_height?=?800;?//不是固定需要獲取
int?bitsPerPixel?=?32;?//不是固定需要獲取
BYTE?*m_buffer?=?srcBmpP;?//
int?m_remoteformat_bitsPerPixel??=?32;
//int?m_usePixelFormat24?=?false;
//static?struct?jpeg_destination_mgr?jpegDstManager;
//static?JOCTET?*jpegDstBuffer;?
//static?size_t?jpegDstBufferLen;
static?bool?jpegError;
//static?int?jpegDstDataLen;
//static?void?JpegInitDestination(j_compress_ptr?cinfo);
//static?boolean?JpegEmptyOutputBuffer(j_compress_ptr?cinfo);
//static?void?JpegTermDestination(j_compress_ptr?cinfo);
//
//static?void
//JpegInitDestination(j_compress_ptr?cinfo)
//{
// jpegError?=?false;
// jpegDstManager.next_output_byte?=?jpeg
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄??????????0??2007-01-28?22:10??jpegcompresstest\debug
?????目錄??????????0??2007-01-28?22:10??jpegcompresstest\jpegcompresstest\Debug
?????文件???????8176??2007-01-28?22:05??jpegcompresstest\jpegcompresstest\jpegcompresstest.cpp
?????文件???????4514??2007-01-28?15:43??jpegcompresstest\jpegcompresstest\jpegcompresstest.vcproj
?????文件???????1427??2007-01-28?22:07??jpegcompresstest\jpegcompresstest\jpegcompresstest.vcproj.MICROSOF-B2A6F0.Administrator.user
?????文件???????1004??2007-01-28?15:43??jpegcompresstest\jpegcompresstest\ReadMe.txt
?????文件????????221??2007-01-28?15:43??jpegcompresstest\jpegcompresstest\stdafx.cpp
?????文件????????276??2007-01-28?15:43??jpegcompresstest\jpegcompresstest\stdafx.h
?????目錄??????????0??2007-01-28?22:05??jpegcompresstest\jpegcompresstest
?????文件???????1527??2007-01-28?15:46??jpegcompresstest\jpegcompresstest.sln
?????文件???????1565??2002-12-11?15:06??jpegcompresstest\libjpeg\ansi2knr.1
?????文件??????23008??2002-12-11?15:06??jpegcompresstest\libjpeg\ansi2knr.c
?????文件???????5381??2002-12-11?15:06??jpegcompresstest\libjpeg\cderror.h
?????文件???????4863??2002-12-11?15:06??jpegcompresstest\libjpeg\cdjpeg.c
?????文件???????6307??2002-12-11?15:06??jpegcompresstest\libjpeg\cdjpeg.h
?????文件???????9501??2002-12-11?15:06??jpegcompresstest\libjpeg\change.log
?????文件??????10418??2002-12-11?15:06??jpegcompresstest\libjpeg\cjpeg.1
?????文件??????20458??2002-12-11?15:06??jpegcompresstest\libjpeg\cjpeg.c
?????文件??????12568??2002-12-11?15:06??jpegcompresstest\libjpeg\ckconfig.c
?????文件??????25163??2002-12-11?15:06??jpegcompresstest\libjpeg\config.guess
?????文件??????20756??2002-12-11?15:06??jpegcompresstest\libjpeg\config.sub
?????文件??????62320??2002-12-11?15:06??jpegcompresstest\libjpeg\configure
?????目錄??????????0??2007-01-28?22:10??jpegcompresstest\libjpeg\Debug
?????文件???????7669??2002-12-11?15:06??jpegcompresstest\libjpeg\djpeg.1
?????文件??????19955??2002-12-11?15:06??jpegcompresstest\libjpeg\djpeg.c
?????文件??????17524??2002-12-11?15:06??jpegcompresstest\libjpeg\example.c
?????文件???????5834??2002-12-11?15:06??jpegcompresstest\libjpeg\install-sh
?????文件???????9401??2002-12-11?15:06??jpegcompresstest\libjpeg\jcapimin.c
?????文件???????6042??2002-12-11?15:06??jpegcompresstest\libjpeg\jcapistd.c
?????文件??????16849??2002-12-11?15:06??jpegcompresstest\libjpeg\jccoefct.c
............此處省略124個文件信息
- 上一篇:freeimage庫的一個小
- 下一篇:國民經濟行業分類.xlsx
評論
共有 條評論