求助:如何把256色bitmap到jpeg的转换。(100分)

  • 主题发起人 主题发起人 硕鼠
  • 开始时间 开始时间

硕鼠

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
        jpg:=TJPEGImage.Create;
        jpg.Assign(bmp);
        jpg.PixelFormat:=jf8Bit;
        fname:=p+fname+'.jpg';
        jpg.SaveToFile(fname);
本人的程序中bmp存放的是一幅256色的图希望把它转换到jpg中,程序运行没有问题,
但生成的jpg文件是0字节。
 
试试这个,没错的.
Procedre Button1Click(Sender:TObject);
var
ExmJpeg:TJpegImage;
ExmImage:TImage;
begin
ExmImage :- Timage.Create(self);
ExmJpeg := TJPEGImage.Create;
ExmImage.Picture.LoadFromFile('you bitmap');//装入位图
ExmJpeg.Assign(ExmImage.Picture.Bitmap);
ExmJpeg.SaveTofile('your jpeg file');
ExmImage.Free;
ExmJpeg.Free;
end;
 
你可以去看看我以前发的帖子。jpg图像注定是16k色的,你指定为8bit就不行了。
 
我的bitmap是8bit的,没办法。
 
to bswilson
你的程序在24位的时候是对的,但在8位的时候报内存不足。
 
你到TJPEGImage的属性设置中,设定PixelFormat,由它决定是用8BIT或者24BIT.
希望这下你能解决到问题了.
 
to bswilson
我设了.
 
你bitmap是8bit这没有关系,在转换的时候会自动变为16k的。
 
就是不行,请使用png格式
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部