【发布时间】:2021-04-06 20:47:49
【问题描述】:
我有一个 bmp 文件,正在尝试将其转换为 jpeg 格式。使用以下代码创建的 jpeg 失去了很多清晰度。我试过调整很多设置都无济于事。
有没有人可以将bmp文件转换为jpeg的功能?
var
Bmp: TBitmap;
Jpg: TJPEGImage;
begin
Bmp := TBitmap.Create;
Jpg := TJPEGImage.Create;
try
Bmp.LoadFromFile(BmpFileName);
Jpg.Assign(Bmp);
jpg.PixelFormat :=jf24bit; // or jf8bit
Jpg.CompressionQuality := 100;
Jpg.ProgressiveDisplay := False;
Jpg.ProgressiveEncoding := False;
Jpg.SaveToFile(JpgFileName);
finally
Jpg.Free;
Bmp.Free;
end;
end;
更新二 很多人反应 jpeg 不是在这种情况下使用的图形类型。明白了。不要打死马,但我已经能够使用其他程序(即 Photoshop)并将其转换为漂亮的 jpeg。我用来创建图表的工具(fusioncharts)也能够将其导出为漂亮的 jpeg(见下文)。有什么区别?
【问题讨论】:
-
我不知道这是否是问题所在。在将 BMP 分配给 Jpg 之前,您可能需要设置质量设置。转换可能发生在分配而不是保存到文件中。
-
@gbrandt:不,声明在它所在的地方完全没问题。
-
我对此做了一些跟进。据我所知,在 savetofile 调用期间似乎失去了清晰度。在我的项目中,我添加了一个 TImage 并将 jpeg 分配给它。它渲染得很好。
-
是的......如果可能的话,JPG 不是正确的格式。
标签: delphi