/* 获得 A1R5G5B5 红色分量 */
inline BYTE R1555( unsigned short clr )
{
return ( (clr & 0x7C00 ) >> 7) & 0x0ff;
}
/* 获得 A1R5G5B5 绿色分量 */
inline BYTE G1555( unsigned short clr )
{
return ( (clr & 0x03E0 ) >> 2) & 0x0ff ;
}
/* 获得 A1R5G5B5 蓝色分量 */
inline BYTE B1555( unsigned short clr )
{
return ( (clr & 0x001F ) << 3) & 0x0ff;
}
/* 四字节对齐 */
int DWORDAlign( int nBits )
{
int nAlignBytes = ( nBits + 31 ) / 32 * 4;
return nAlignBytes;
}
/*
测试环境:VS2008 with SP1 + WinXP with SP3
功能:[HBITMAP bitmap]中指向的位图压缩成名为[const wchar_t* filename]的JPG文件
入口参数:HDC hDC 当前显示设备句柄
返回值: TRUE: 成功
FALSE:失败
说明:只支持16(ARGB1555),24,32 三种颜色深度的 HBITMAP类型
最后修改:kagula,2012-05-15
参考资料
[1]使用jpeglib库实现bmp转jpg (转)
http://www.cppblog.com/cc/archive/2012/02/22/166217.html
[2]bmp轉jpg錯誤總結 + jpeglib使用指南
http://www.guan8.net/Java/409856.html
[3]
HBITMAP转储JPG文件,源码示例
最新推荐文章于 2022-09-07 18:03:52 发布
这是一个C++函数,用于将HBITMAP类型的位图压缩成JPG文件。函数支持16位(ARGB1555)、24位和32位颜色深度的位图,并使用jpeglib库进行转换。代码中包含了获取位图颜色分量的内联函数,以及对不同颜色深度位图的预处理操作。
摘要由CSDN通过智能技术生成