如何把颜色为32位的图像转成颜色为16位的图像
如何把颜色为32位的图像转成颜色为16位的图像
[解决办法]
取近似值
,我是猜的,具体可听阿发伯详解
[解决办法]
以下是转换成24的代码,改改就可以用了;
var bmp,zbmp:Tbitmap;
begin
BMP:=TBitmap.Create;
BMp.LoadFromFile('d:\1.bmp');
zbmp:=TBitMap.Create;
zbmp.PixelFormat:=pf24bit;
zbmp.height:=144;
zbmp.Width :=144;
zbmp.Canvas.CopyMode:=cmSrcCopy;
SetStretchBltMode(zbmp.Canvas.Handle,HALFTONE);
StretchBlt(zbmp.Canvas.Handle,0,0,zbmp.Width,CSLSBmp.Height,
Bmp.Canvas.Handle,0,0,BMp.Width,BMp.Height,SRCCOPY);
zbmp.SaveToFile('d:\1.bmp');
end;
[解决办法]
是近似值,
一般32位会有8位不用,三种颜色各8位
16位 绿色6位其它2色5位,取前几位就可以了。
[解决办法]
BMP.PixelFormat := pf16bit