Udskrift af JPG fil uden kvalitetstab
Jeg har en JPG fil som jeg laver fra en TWebbrowser som jeg laver med følgende kodeprocedure TfrmMain.actSaveExecute(Sender: TObject);
var
ViewObject : IViewObject;
r : TRect;
Bitmap: TBitmap;
Filename: string;
begin
Filename := Folders.Path(dirExport) + 'saved.jpg';
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(Filename);
finally
Free;
end;
finally
Bitmap.Free;
end;
finally
ViewObject._Release;
end;
end;
end;
Hvis jeg ser den i min ACDSee så ser den ret fornuftig ud
Hvis jeg så efterfølgende henter den ind i en TcxImage (DevExpress) så ser den ud at h til. Det som om opløsningen går helt fløjten og man kan dårligt se hvad der er på billedet.
Jeg loader det med imgPrint.Picture.LoadFromFile(fImage);
Nogen forslag til hvad der kan gøres bedre?
Grunden til at det er en TcxImage er at at den er understøttet af TdxComponentPrinter så jeg kan skrive det ud efterfølgende.
Jeg kunne måske godt skrive ud fra TWebbrowser, men da har jeg ikke kontrol med hvor stort billedet bliver så det kan komme til at fylde flere sider.
