⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 image.cpp

📁 自己在wince的环境下做的一移动数字电视驱动
💻 CPP
字号:
/******************************************************************************
* TCC_COPYRIGHT
*
* END_TCC_COPYRIGHT
******************************************************************************/

#include "image.h"

namespace tcw{	
HBITMAP CreateDibSectionFromDibFile(PCTSTR szFileName, BYTE*& pBits)
{
	BITMAPFILEHEADER bmfh ;
	BITMAPINFO     * pbmi ;

	BOOL             bSuccess ;
	DWORD            dwInfoSize, dwBytesRead ;
	HANDLE           hFile ;
	HBITMAP          hBitmap ;

	// Open the file: read access, prohibit write access
	hFile = CreateFile (szFileName, GENERIC_READ, FILE_SHARE_READ,
	NULL, OPEN_EXISTING, 0, NULL) ;

	if (hFile == INVALID_HANDLE_VALUE)
		return NULL ;

	// Read in the BITMAPFILEHEADER
	bSuccess = ReadFile (hFile, &bmfh, sizeof (BITMAPFILEHEADER), 
		&dwBytesRead, NULL) ;

	if (!bSuccess || (dwBytesRead != sizeof (BITMAPFILEHEADER))         
		|| (bmfh.bfType != * (WORD *) "BM"))
	{
		CloseHandle (hFile) ;
		return NULL ;
	}

	// Allocate memory for the BITMAPINFO structure & read it in
	dwInfoSize = bmfh.bfOffBits - sizeof (BITMAPFILEHEADER) ;
	pbmi = static_cast<BITMAPINFO*>(malloc (dwInfoSize)) ;
	bSuccess = ReadFile (hFile, pbmi, dwInfoSize, &dwBytesRead, NULL) ;
	if (!bSuccess || (dwBytesRead != dwInfoSize))
	{
		free (pbmi) ;
		CloseHandle (hFile) ;
		return NULL ;
	}

	// Create the DIB Section
	hBitmap = CreateDIBSection (NULL, pbmi, DIB_RGB_COLORS, reinterpret_cast<void**>(&pBits), NULL, 0) ;
	if (hBitmap == NULL)
	{
		free (pbmi) ;
		CloseHandle (hFile) ;
		return NULL ;
	}

	// Read in the bitmap bits
	ReadFile (hFile, pBits, bmfh.bfSize - bmfh.bfOffBits, &dwBytesRead, NULL) ;
	free (pbmi) ;
	CloseHandle (hFile) ;

	return hBitmap ;
}


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -