User manual - JPEGライブラリマニュアルver.1.10(2012年3月29日)

18
4. サンプルプログラム
BMP ファイルを JPEG ファイルにエンコードする、および JPEG ファイルを画面上に表示するサンプルコー
ドを示します。
4.1 BMP ファイルを JPEG ファイルにエンコード
24bit BMP ファイルをエンコードし、JPEG ファイルとして保存するプログラムを以下に示します。
BOOL EncodeBmpFile( HWND hWnd)
{
HANDLE hFile;
TCHAR tInputFile[] = TEXT("\\Test.bmp");
TCHAR tOutputFile[] = TEXT("\\Test.jpg");
BITMAPINFOHEADER InfoHeader;
BITMAPFILEHEADER FileHeader;
JPEGINFO JpegInfo;
LPBYTE lpbRGB;
DWORD dwBuffSize;
DWORD dwReadSize;
// Open a Bitmap File
hFile = CreateFile( tInputFile, GENERIC_READ, 0 ,NULL ,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
//Read BitmapFileHeader
ReadFile( hFile, &FileHeader, sizeof(BITMAPFILEHEADER), &dwReadSize, NULL );
// Check the File format
if( FileHeader.bfType != 0x4D42 ){
CloseHandle( hFile );
return FALSE;
}
// Read BitmapInfoHeader
ReadFile( hFile, &InfoHeader, sizeof(BITMAPINFOHEADER), &dwReadSize, NULL);
// Read RGB data
dwBuffSize = InfoHeader.biWidth * InfoHeader.biHeight * 3 + 100;
lpbRGB = (LPBYTE)VirtualAlloc( NULL, dwBuffSize, MEM_COMMIT, PAGE_READWRITE );
ReadFile( hFile, lpbRGB, dwBuffSize, &dwReadSize, NULL );
CloseHandle( hFile );
続く