![]() |
PNG Bilder vergrößer bzw verkleinern
Hallo :)
Ich habe folgendes Problem : Ich versuche hier krampfhaft ein PNG Bild aus einer DLL zu extraieren und auf meiner Form als Hintegrund Bild zu plazieren. Das PNG Bild ist zu klein für die ganze Form also muss ich es stretchen. Das will mir aber nicht gelingen, denn was ich auch mache .. es bleibt immer gleich groß, halt wie das original. Für das PNG Bilde benutze ![]() Hat einer sowas schon mal gemacht? Eine PNG Als Hintergrund? Oder kann mir einer schreiben wie ich ein PNG Bild verkleinern/vergrößern kann ? Gruß Troelli |
Re: PNG Bilder vergrößer bzw verkleinern
Du könntest es auf einer eigenen Komponente (oder einfach im Form-Hintergrund) selbst zeichnen. Also einfach Laden und dann eben ausrechnen wo welche Farbe sein soll.
|
Re: PNG Bilder vergrößer bzw verkleinern
Und genau das habe ich echt nicht hinbekommen...
Schön wäre es wenn mir einer ein Sample zur verfügung stellen könnte. Ich bin ein Noob. Bin gerade erst mit Delphi angefangen. Bist jetzt habe ich mich mit fertigen Komponenten retten können. Google hält auch immer was bereit, aber diesmal stehe ich echt auf dem Schlauch :( |
Re: PNG Bilder vergrößer bzw verkleinern
Zitat:
Man könnte es zum Beispiel so machen: Man geht jeden Pixel der eigenen Komponente durch und schaut bei wie viel Prozent der Breite und Höhe der Komponente der Pixel ist. Zum Beispiel wenn die Komponente 100*100 Pixel groß wäre und man beim Pixel x=50 y=10 ist, dann ist man bei 50% Breite (bzw. 0.5) und 10% Höhe (bzw. 0.1). Jetzt schaut man welche Farbe im PNG an diesen Stellen (in Prozent!) ist und malt diese auf die Komponente. Das funktioniert zwar, die "Überläufe" zwischen den Pixeln werden aber nicht geglättet. Also wenn du ein kleines Bild vergrößerst wird es ziemlich pixelig. Dafür icht es einfach zu verstehen und zu programmieren. |
Re: PNG Bilder vergrößer bzw verkleinern
Wenn Du Dein PNG im TImage hast, ist es doch nicht weiter schwer. Du kannst bei Deinem TImage
Delphi-Quellcode:
setzen oder Du kopierst es nur auf den Hintergrund
Image1.Align := alClient;
Image1.Stretch := True;
Delphi-Quellcode:
.
Canvas.StretchDraw(ClientRect, Image1.Picture.Graphic);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 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