Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild in TImage in einer anderen Größe abspeichern (https://www.delphipraxis.net/17209-bild-timage-einer-anderen-groesse-abspeichern.html)

Nalincah 1. Mär 2004 12:12


Bild in TImage in einer anderen Größe abspeichern
 
Wie kann ich ein bmp (Grösse in Pixel: 556x792), welches im TImage geladen wurde, unter z.B. 1112x1584 abspeichern? Also vorher die Größe verändern. Oder als 10x10cm mit 127dpi??

MarcoWarm 1. Mär 2004 12:33

Re: Bild in TImage in einer anderen Größe abspeichern
 
Hi,

um das zu erreichen musst Du das Bitmap auf alle Fälle in ein neues übertragen.
Schritte:
1. kleines Bild laden
Delphi-Quellcode:
BmpSmall.LoadFromFile(...)
2. großes Bild erstellen
Delphi-Quellcode:
BmpLarge:=TBitmap.create;

BmpLarge.PixelFormat:=BmpSmall.PixelFormat;
BmpLarge.Width:=1112;
BmpLarge.Height:=1584;
3. kleines auf großes Bild zeichnen und speichern
Delphi-Quellcode:
BmpLarge.Canvas.StrechDraw(BmpLarge.Canvas.ClipRect,BmpSmall);
BmpLarge.SaveToFile(...);
zugegeben, das Ergebnis wird nicht sonderlich schön, da das Bitmap nicht interpoliert vergrößert wird.
Wenn man das will empfiehlt sich:
http://delphi.icm.edu.pl/ftp/d20free/resample.zip

Ciao

Marco

Nalincah 1. Mär 2004 13:21

Re: Bild in TImage in einer anderen Größe abspeichern
 
So..Dieser Code funktioniert nur teils. Es wird zwar ein Bild abgespeichert das dem Format entspricht, aber leider ist es leer und mein "Image1" welches auf der Form liegt verschwindet aufeinmal.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  BmpNeu : TBitmap;
  dpi : Integer;
  NeuWidth,NeuHeight:Extended;
begin
  NeuWidth := (StrToInt(EditBreite.Text) * StrToInt(EditDpi.Text)) / 2.54;
  NeuWidth := 1270 / 2.54;
  BmpNeu := TBitmap.Create;
  BmpNeu.PixelFormat := Image1.Picture.Bitmap.PixelFormat;
  BmpNeu.Width := StrToInt(EditBreite.Text);
  BmpNeu.Height := StrToInt(EditHoehe.Text);
  BmpNeu.Canvas.StretchDraw(BmpNeu.Canvas.ClipRect,Image1.Picture.Bitmap);
  BmpNeu.SaveToFile(LabeledEdit2.Text);
end;
Woran könnte das liegen?

Nalincah 1. Mär 2004 13:38

Re: Bild in TImage in einer anderen Größe abspeichern
 
Noch ne Frage..Wie kann ich ein Bild unter einer bestimmten dpi-Anzahl speichern???

MarcoWarm 1. Mär 2004 14:18

Re: Bild in TImage in einer anderen Größe abspeichern
 
Also der von dir gepostete Code funktioniert bei mir. Habs grad ausprobiert.

Nalincah 1. Mär 2004 14:33

Re: Bild in TImage in einer anderen Größe abspeichern
 
Mein Fehler..Falsche Kompo drin gehabt..Jetzt klappts hier auch
Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz