Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: image resizen??

  Alt 10. Jul 2007, 22:11
Hi,

so würde es wohl auch gehen, die Qualität wird durch das Vergrößern allerdings auch nicht besser.
Delphi-Quellcode:
uses JPEG;

function StretchJpeg(Open, Save: AnsiString; Img: Timage): Boolean;
var
  Jpg : TJpegImage;
  Bmp: TBitmap;
begin
  Result:= false;
  if FileExists(Open) then
  begin
    Jpg := TJpegImage.Create;
    Bmp:= TBitmap.Create;
    try
      Jpg.LoadFromFile(Open);
      Bmp.PixelFormat:= pf24bit;
      Bmp.Assign(Jpg);
      Img.Picture.Bitmap.Width:= Img.Width;
      Img.Picture.Bitmap.Height:= Img.Height;
      SetStretchBltMode(Img.Picture.Bitmap.Canvas.Handle, STRETCH_HALFTONE);
      SetBrushOrgEx(Img.Picture.Bitmap.Canvas.Handle, 0, 0, nil);
      StretchBlt(Img.Picture.Bitmap.Canvas.Handle, 0, 0, Img.Width,
        Img.Height, Bmp.Canvas.Handle, 0, 0, Bmp.Width, Bmp.Height, srccopy);
      Jpg.Assign(Img.Picture.Bitmap);
      Jpg.CompressionQuality:= 95;
      Jpg.Compress;
      Jpg.SaveToFile(Save);
      Result:= true;
    finally
      Bmp.Free;
      Jpg.Free;
    end;
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  StretchJpeg('c:\Bild.jpg', 'C:\BildTest.jpg', Image1);
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat