DWORD biSize; 该结构大小(bytes) LONG biWidth; 图象宽 LONG biHeight; 图象高 WORD biPlanes; 必须为1 WORD biBitCount用多少位来表示一个点(0, 1, 4,8,16,24,32) DWORD biCompression;有没有压缩,一般为BI_RGB无压缩 DWORD biSizeImage; 图象大小(bytes) LONG biXPelsPerMeter; x resolution LONG biYPelsPerMeter; y resolution DWORD biClrUsed; 用了多少颜色数(指调色板图象) DWORD biClrImportant; 需要多少颜色数 如果是24,或32位的,后两个可设为0。
我看了,但是不太明白其中的几个定义,象“CONST BITMAPINFO *lpBitsInfo ”是C中的一个结构,不知道在DELPHI中怎么定义这个结构。
int SetDIBitsToDevice(
HDC hdc, // handle to device context
int XDest, // x-coordinate of upper-left corner of
// dest. rect.
int YDest, // y-coordinate of upper-left corner of
// dest. rect.
DWORD dwWidth, // source rectangle width
DWORD dwHeight, // source rectangle height
int XSrc, // x-coordinate of lower-left corner of
// source rect.
int YSrc, // y-coordinate of lower-left corner of
// source rect.
UINT uStartScan, // first scan line in array
UINT cScanLines, // number of scan lines
CONST VOID *lpvBits, // address of array with DIB bits
CONST BITMAPINFO *lpbmi, // address of structure with bitmap info.
UINT fuColorUse // RGB or palette indexes
);
hdc: 可为 .canvas.handle;uStartScan : 一般为零;
cScanLines: 实际上就是图象的高度;
lpvBits:指向图象数据的指针;
Bitmapinfo:就是位图头了
fuColorUse : 一般为DIB_RGB_COLORS
看看MSDN
我就是最后几个参数如:CONST BITMAPINFO *lpbmi, // address of structure with bitmap info
不知道怎么设置啊。
bmiHeader: TBitmapInfoHeader;
bmiColors: array[0..0] of TRGBQuad;
end;
tagBITMAPINFOHEADER = packed record
biSize: DWORD;
biWidth: Longint;
biHeight: Longint;
biPlanes: Word;
biBitCount: Word;
biCompression: DWORD;
biSizeImage: DWORD;
biXPelsPerMeter: Longint;
biYPelsPerMeter: Longint;
biClrUsed: DWORD;
biClrImportant: DWORD;
end;
TBitmapInfoHeader = tagBITMAPINFOHEADER;
哦,你在查查bmp文件的结构,就明白了!
是压缩的,还是bmp这样没压缩的?如果压缩的是用什么方式压缩的?是jpg?还是。?
颜色是多少位的?8bit?16bit?32bit?还是就黑白两色?
如果是8bit的,其中还要有RGB表!
图象的高和宽在哪个字节?如果不清楚就没发下手,可以自己分析比较,也可以自己试试几种发生!
DWORD biSize; 该结构大小(bytes)
LONG biWidth; 图象宽
LONG biHeight; 图象高
WORD biPlanes; 必须为1
WORD biBitCount用多少位来表示一个点(0, 1, 4,8,16,24,32)
DWORD biCompression;有没有压缩,一般为BI_RGB无压缩
DWORD biSizeImage; 图象大小(bytes)
LONG biXPelsPerMeter; x resolution
LONG biYPelsPerMeter; y resolution
DWORD biClrUsed; 用了多少颜色数(指调色板图象)
DWORD biClrImportant; 需要多少颜色数
如果是24,或32位的,后两个可设为0。
看样子你不是真正了解电脑是这样处理图象的,你给的那些定义只是结构定义,
而不是他现在这个数据的定义,你要他如何好使用?只有他清楚了自己的数据,
才能用这个定义格式来显示图象!(有了你定义的资料,只要是有效的图数据,任何数据我都能显示,可惜,他自己都不清楚数据现在的格式,也就是说他
还不清楚这些8000H的数据那些地方与你定义的格式相匹配!!!!比如,第几个字节是图象的宽?那几个是图象的高????)
To:pathe(睡斛)
你列出的结构我都知道,但是主要是不知道代表什么意思。
To:chinakiss8848(似乎明白了)
我那4000H数据全是图像数据,不包括头文件,我也是昨天才从硬件部知道有头文件,可惜我都画完了。
谢谢各位帮忙了。