Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Bild vergrößern mit StretchBlt

  Alt 2. Apr 2009, 10:43
Zitat von EWeiss:
EDIT:
Verstehe auch nicht warum du von Image1 ausgehst
Hier solltest du das Originale Bitmap verwenden oder willst du das
320xXXX Bitmap abspeichern ?
Das ist dann aber sehr verpixelt.

Denke Image1 ist ein als Vorschaubild gedacht oder?
Die Antworten haben sich alle überschnitten:

Ja, das soll nur zur Vorschau sein. Ich habe - zu Testzwecken - meinen Code geändert. Entschuldigung falls es noch nicht in meinem Paket so war. Es sieht jetzt so aus:
Delphi-Quellcode:
Procedure TForm1.Button5Click(Sender: TObject);
Var
   H,B         : Integer;
   help,Org      : TImage;
Begin
   help:=TImage.Create(self);
   Org:=TIMage.Create(self);
   Try
      Org.Picture.LoadFromFile(OpenDialog1.FileName);
      SetStretchBltMode(help.Canvas.Handle,HALFTONE);
      B:=Org.Picture.Width;
      H:=Org.Picture.Height;
      ShowMessage(FormatFloat('#,##0',B)+'x'+FormatFloat('#,##0',H));
      If H>B Then
      Begin
         help.Picture.Graphic.Width:=1660;
         help.Picture.Graphic.Height:=2340;
         StretchBlt(help.Canvas.Handle,   // Ziel
                    0,0,1660,2340,         // Ziel Ausmaße
                    Org.Canvas.Handle,      // Quelle
                    0,0,B,H,               // Ausmaße Quelle
                    SRCCOPY)
      End
      Else
      Begin
         help.Picture.Graphic.Width:=2340;
         help.Picture.Graphic.Height:=1660;
         StretchBlt(help.Canvas.Handle,   // Ziel
                    0,0,2340,1660,         // Ziel Ausmaße
                    Org.Canvas.Handle,      // Quelle
                    0,0,H,B,               // Ausmaße Quelle
                    SRCCOPY);
      End;
      help.Picture.Bitmap.SaveToFile(OpenDialog1.FileName+'_neu.bmp');
   Finally
      help.Free;
      Org.Free;
   End;
End;
Das verpixelte Aussehen ist nur jetzt so und mir egal. Habe kein anderes Testbild gefunden. Mein Fernziel ist es, ein Programm zu schreiben, dass mir Bilder von Scannern besorgt (einer kann z.B. nur 300 oder 600 dpi) , diese auf DINA4 bei exakt 200 dpi zuschneidet (ich will es einheitlich für ein schon fertiges Archivprogramm) und ggf. noch dreht.

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat