![]() |
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??
|
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:
2. großes Bild erstellen
BmpSmall.LoadFromFile(...)
Delphi-Quellcode:
3. kleines auf großes Bild zeichnen und speichern
BmpLarge:=TBitmap.create;
BmpLarge.PixelFormat:=BmpSmall.PixelFormat; BmpLarge.Width:=1112; BmpLarge.Height:=1584;
Delphi-Quellcode:
zugegeben, das Ergebnis wird nicht sonderlich schön, da das Bitmap nicht interpoliert vergrößert wird.
BmpLarge.Canvas.StrechDraw(BmpLarge.Canvas.ClipRect,BmpSmall);
BmpLarge.SaveToFile(...); Wenn man das will empfiehlt sich: ![]() Ciao Marco |
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:
Woran könnte das liegen?
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; |
Re: Bild in TImage in einer anderen Größe abspeichern
Noch ne Frage..Wie kann ich ein Bild unter einer bestimmten dpi-Anzahl speichern???
|
Re: Bild in TImage in einer anderen Größe abspeichern
Also der von dir gepostete Code funktioniert bei mir. Habs grad ausprobiert.
|
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 22:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz