首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

PixelFormat的有关问题

2012-04-10 
PixelFormat的问题我加载了一张8bpp(bit per pixel)的lena256.bmp图片。这是图片地址:http://http://www.go

PixelFormat的问题
我加载了一张8bpp(bit per pixel)的lena256.bmp图片。这是图片地址:
http://http://www.google.com.hk/imgres?hl=zh-CN&newwindow=1&safe=strict&sa=X&tbm=isch&prmd=imvns&tbnid=SE1CkJT7emTlQM:&imgrefurl=http://www.miszalok.de/C_3D_WPF/C4_Sphere/C3D_WPFC4_e.htm&docid=WWJOSpBud4PxxM&imgurl=http://www.miszalok.de/C_3D_WPF/C4_Sphere/Images/lena256.bmp&w=256&h=256&ei=8c9rT-XyG66UiAfY__HnBQ&zoom=1&biw=1364&bih=678
我使用下面代码为了想在标题栏上显示是图片是多少bpp的。bmp和PixelFmt事先已经定义了。

C/C++ code
bmp -> LoadFromFile(CurrentFile);PixelFmt = bmp -> PixelFormat;Form -> Caption = "PixelFormat:" + PixelFmt;

打开24bpp的真彩图时显示为6;打开8bpp的灰阶图显示为3。这是什么意思?

[解决办法]
查看一下 TPixelFormat 的定义:
enum TPixelFormat { pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom };

可以看出,24位的值pf24bit正是6,而8位的pf8bit正是3.

热点排行