求纯c++写的读取32位bmp图的开源种
求纯c++写的读取32位bmp图的开源类
如题,是纯c++编写的,不能用到其他如mfc类库之类的,或者是纯c++读取32位bitmap位图相关代码,里面存储一个char*的数组。之前找到过了一开源类,不过只能用24位的
------解决方案--------------------
------解决方案--------------------
试试FreeImage(freeimage.sourceforge.net)库。
如题,是纯c++编写的,不能用到其他如mfc类库之类的,或者是纯c++读取32位bitmap位图相关代码,里面存储一个char*的数组。之前找到过了一开源类,不过只能用24位的
------解决方案--------------------
/*计算数组下标*/
#define ARRAY_INDEX(index, BitNum) ((index) / (BitNum))
/*计算BIT位*/
#define BIT_INDEX(index, BitNum) ((index) % (BitNum))
#define CLR_BIT_NUM(addr, index, BitNum, type) \
*(addr + ARRAY_INDEX(index, BitNum)) &= \
(~(((type)0x01) << BIT_INDEX(index, BitNum)))
#define SET_BIT_NUM(addr, index, BitNum, type) \
*(addr + ARRAY_INDEX(index, BitNum))
------解决方案--------------------
= \
(((type)0x01) << BIT_INDEX(index, BitNum))
#define CHK_BIT_NUM(addr, index, BitNum, type) \
(*(addr + ARRAY_INDEX(index, BitNum)) >> BIT_INDEX(index, BitNum)) & ((type)0x01)
#define CLR_BIT_LONG(addr, index) (CLR_BIT_NUM(addr, index, 32, unsigned long))
#define SET_BIT_LONG(addr, index) (SET_BIT_NUM(addr, index, 32, unsigned long))
#define CHK_BIT_LONG(addr, index) (CHK_BIT_NUM(addr, index, 32, unsigned long))
#define CLR_BIT_UNINT(addr, index) (CLR_BIT_NUM(addr, index, 32, unsigned int))
#define SET_BIT_UNINT(addr, index) (SET_BIT_NUM(addr, index, 32, unsigned int))
#define CHK_BIT_UNINT(addr, index) (CHK_BIT_NUM(addr, index, 32, unsigned int))
------解决方案--------------------
试试FreeImage(freeimage.sourceforge.net)库。