我使用以下过程从TWebbrowser创建JPG文件 这导致JPG看起来不错 然后我将这个JPG加载到DevExpress的TcxImage控件中以便打印它。这会弄乱我的图像,因此无法看到地图(它是谷歌地图的一部分地图) 加载图像的代码是
imgPrint.Picture.LoadFromFile(lImage);
我不明白为什么这在屏幕上看起来如此糟糕。 我是这样做的,以便能够打印地图。 它也可以直接从TWebBrowser完成,但我无法控制输出大小,添加我自己的页眉和页脚是棘手的。
procedure TfrmJsZipExplorer.actSaveExecute(Sender: TObject);
var
ViewObject : IViewObject;
r : TRect;
Bitmap: TBitmap;
begin
if WebBrowser1.Document <> nil then
begin
WebBrowser1.Document.QueryInterface(IViewObject, ViewObject) ;
if Assigned(ViewObject) then
try
Bitmap := TBitmap.Create;
try
r := Rect(0, 0, WebBrowser1.Width, WebBrowser1.Height) ;
Bitmap.Height := WebBrowser1.Height;
Bitmap.Width := WebBrowser1.Width;
ViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0);
with TJPEGImage.Create do
try
Assign(Bitmap);
SaveToFile(lImagefile);
finally
Free;
end;
finally
Bitmap.Free;
end;
finally
ViewObject._Release;
end;
end;
end;
答案 0 :(得分:4)
如何提高已保存的JPEG图像质量?
您可以将保存图像的CompressionQuality
属性设置为压缩率最低,但图像质量值最高。这将改善输出图像的视觉质量。将此属性设置为100将导致更好的图像质量,但文件大小更大:
with TJPEGImage.Create do
try
Assign(Bitmap);
CompressionQuality := 100;
SaveToFile(lImagefile);
finally
Free;
end;
此图片档案需要使用JPEG格式吗?
如果您不仅限于图像存档的JPEG格式,请考虑使用其他格式,例如PNG。如果您决定使用带有TPNGImage
类的PNG格式,则可以使用CompressionLevel
属性,该属性允许您指定已保存图像的压缩级别,这直接影响输出文件的大小,但与JPEG格式压缩不同,保持相同的视觉质量。将此属性设置为9将导致使用完全压缩,这将产生更小的文件大小,质量保持不变,就像没有使用压缩(0值)一样:
uses
PNGImage;
with TPNGImage.Create do
try
Assign(Bitmap);
CompressionLevel := 9;
SaveToFile(lImagefile);
finally
Free;
end;