M
Mr-cure
Unregistered / Unconfirmed
GUEST, unregistred user!
我在把bmp压缩成jpg时,本来256色的bmp,总是变成了16位真彩的jpg,所以本来100k的bmp应该可以压缩成10k的jpg却变成了20k。
请问各位有没有高招可以把256色灰阶的bmp还压缩成256色灰阶的 jpg阿?
我的源代码如下:
procedure ChangeToJPG(bmpFile:string;JpgFile:string);
var
JPG:TJpegImage;
begin
BMP:=TBitMap.Create;
JPG:=TJPEGImage.Create;
BMP.LoadFromFile(bmpFile);
bmp.pixelformat := pf8bit;
JPG.Assign(BMP);
JPG.CompressionQuality:=30; //压缩率为low 30%
JPG.JPegNeeded;
// jpg.pixelformat :=jf8bit; //压缩格式为baseline 256色这句设了图片就存不了了
JPG.Compress;
// if fileexists(jpgFile) then
// if not (deletefile(jpgFile)) then exit;
JPG.SaveToFile(JpgFile);
BMP.Destroy;
JPG.Destroy;
end;
请问各位有没有高招可以把256色灰阶的bmp还压缩成256色灰阶的 jpg阿?
我的源代码如下:
procedure ChangeToJPG(bmpFile:string;JpgFile:string);
var
JPG:TJpegImage;
begin
BMP:=TBitMap.Create;
JPG:=TJPEGImage.Create;
BMP.LoadFromFile(bmpFile);
bmp.pixelformat := pf8bit;
JPG.Assign(BMP);
JPG.CompressionQuality:=30; //压缩率为low 30%
JPG.JPegNeeded;
// jpg.pixelformat :=jf8bit; //压缩格式为baseline 256色这句设了图片就存不了了
JPG.Compress;
// if fileexists(jpgFile) then
// if not (deletefile(jpgFile)) then exit;
JPG.SaveToFile(JpgFile);
BMP.Destroy;
JPG.Destroy;
end;