Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bestimmte Grafik aus einer einzigen Resource laden? (https://www.delphipraxis.net/116776-bestimmte-grafik-aus-einer-einzigen-resource-laden.html)

stOrM 6. Jul 2008 11:03


Bestimmte Grafik aus einer einzigen Resource laden?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi, ich hab da folgendes Problem:

Ich weiss zwar wie man eine Resource erstellt und diese auch wieder laden kann nur, gestern bin ich über eine Bildresource gestolpert (PNG) wo ich mich wirklich frage wie man sowas lädt.

Wir stellen uns mal folgendes vor, eine PNG Resource, die mehrere verschiedene Buttons enthält, die auf dem Bild selber liegen, dass ist z.B. sehr nützlich wenn man nicht für jeden Button eine seperate Resource erstellen möchte wie z.B.

Button1 PNG "Button1.png"
Button2 PNG "Button2.png"

usw.

Sondern man hat z.B. nur GlobalButtons PNG "GlobalButtons.png" die über 40 verschiedene Buttonlayouts enthält.
Die Frage ist nun wie lade ich bestimmte Buttonlayouts aus dieser Resource?

Ich häng mal ein Bild ran, die das vielleicht besser verdeutlicht?

Viele Grüsse
s!

Arnulf 9. Jul 2008 21:58

Re: Bestimmte Grafik aus einer einzigen Resource laden?
 
Ich bin ja immer derjenig der nix versteht in diesem Forum....

Was du hier hast ist ein Bild.
wenn du etwas bestimmtest daraus haben willst, dann musst du dir das schon zerschneiden, bitweise rauskopieren oder ähnliches.
du müsstest dir also ein map speichern die dir sagt - von bit_x bis bit_y enthält bild_1 usw.

oder du ladest jedes in eine eigene recource.

oder versteh ich wiedermal was nicht :)

lg
Arnulf

stOrM 9. Jul 2008 23:52

Re: Bestimmte Grafik aus einer einzigen Resource laden?
 
Hehe machdir keine sorgen, du verstehstdas komplett richtig nur ich kann deine Antwort nicht wirklich umsetzen dafür fehlt mir nun wieder das Verständnis :-)
Ich müsste mal sowas sehen, wie das gemacht wird das könnte mir eventuell auf die Sprünge helfen...

Viele Grüsse
s!

Arnulf 10. Jul 2008 09:16

Re: Bestimmte Grafik aus einer einzigen Resource laden?
 
Naja - ich kenne das png format nicht besonders.
aber soweit ich weiß ist das koprimiert und damit liegt es nicht genau in einem bit raster vor im gegensatz zu einer bitmap.
für bitmaps wäre es einfach, weil die daten einfach linear oder sequentiell abgespeichert werden.
es ist also eine x mal x matrix.
png müsste erst in eine solche matrix eingebaut werden um einzelne bereich raus zu kopieren.
vielleicht gibts auch schon fertige tools um aus png bilder teile auszuschneiden, aber ich kenn sowas nicht.

jedenfalls kannst du das natürlich in eine bitmap laden und dir da einzelne teile rausschneiden.
das ist relativ einfach, wenn du weißt ob es sich um ein 16, 24 oder 32 bit bitmap handelt.
ein pixel ist dann eben 2, 3, oder 4 byte lang und du kannst dir damit die pixel holen und in ein neues bitmap kopieren.

aber sinnvoll erscheint mir das nicht was du da vor hast - jeder hat allerdings so seine gründe verrückte sachen zu machen.
ich bin ja der größte spinner meißtens :)

lg
Arnulf

rotfc 10. Jul 2008 10:22

Re: Bestimmte Grafik aus einer einzigen Resource laden?
 
Ob das Bild in der *.res nun als PNG, GIF, JPG oder BMP ist eigentlich egal, oder?

stOrM will nur wissen, wie man es zum weiteren Gebrauch "zerschnippelt" ;-)

stOrM 10. Jul 2008 10:27

Re: Bestimmte Grafik aus einer einzigen Resource laden?
 
Zitat:

Zitat von rotfc
Ob das Bild in der *.res nun als PNG, GIF, JPG oder BMP ist eigentlich egal, oder?

stOrM will nur wissen, wie man es zum weiteren Gebrauch "zerschnippelt" ;-)

Korrekt!

Viele Grüße
s!

marabu 10. Jul 2008 11:32

Re: Bestimmte Grafik aus einer einzigen Resource laden?
 
Hallo,

ich würde die Ressource mit PNGObject laden, den Stripe mittels Assign() in ein Bitmap konvertieren und dieses Bitmap in eine ImageList laden. Dabei sollte bei korrekter Dimensionierung der Einzelbilder automatisch eine interne Zerlegung stattfinden, sodass mit ImageList.GetBitmap() auf die einzelnen Bilder zugegriffen werden kann. Werden die Einzelbilder wieder im PNG-Format benötigt, so lässt sich jedes Bitmap auch wieder per Assign() in ein PNGObject umwandeln.

Grüße vom marabu

Arnulf 10. Jul 2008 11:43

Re: Bestimmte Grafik aus einer einzigen Resource laden?
 
Zitat:

Ob das Bild in der *.res nun als PNG, GIF, JPG oder BMP ist eigentlich egal, oder?
Das ist es eben nicht.
wie marabu geschreiben hat muss man das wohl erstmal in ein bitmap überführen um die bilddaten ordentlich zerlegen zu können.

png lässt sich nicht einfach so zerschnippeln.
jpg vielleicht wenn man 8x8 raster verwendet.
es kommt also sehr auf das bildformat an.

so wie ich das png bild gesehen habe sind die bilder nicht gleich groß, deshalb musst du eine pixel map mitliefern die das zuerlegen überhaupt erst ermöglicht.

das war es denke ich was ich gesagt habe.
wenn alle Bilder gleich groß sind, dann gehts einfacher - so wie marabu gesagt hat.

lg
Arnulf

Namenloser 10. Jul 2008 11:46

Re: Bestimmte Grafik aus einer einzigen Resource laden?
 
Wenn die ressource aber so aussieht wie im Anhang, wird das wohl nicht klappen, weil die Bilder nicht alle die gleiche Größe haben. Da bleibt dir wohl nichts anderes übrig, als die Positionen der Bilder binär oder im textformat abzuspeichern und dann aus dem Bild herauszukopieren.

Eventuell kann ich nachher mal nen kleinen Beispiel Code liefern, wenn benötigt. (hab ja grad nix zu tun :stupid: )

stOrM 10. Jul 2008 11:55

Re: Bestimmte Grafik aus einer einzigen Resource laden?
 
Zitat:

Zitat von NamenLozer
Wenn die ressource aber so aussieht wie im Anhang, wird das wohl nicht klappen, weil die Bilder nicht alle die gleiche Größe haben. Da bleibt dir wohl nichts anderes übrig, als die Positionen der Bilder binär oder im textformat abzuspeichern und dann aus dem Bild herauszukopieren.

Eventuell kann ich nachher mal nen kleinen Beispiel Code liefern, wenn benötigt. (hab ja grad nix zu tun :stupid: )

Extrem notwendig, der Schnippsel, wenn Du grad eh nix zu tun hast :-)
Wobei ich gerne auf ne Imagelist verzichten würde, wenn das geht, ich wollte Graphics32 nutzen und für die einzelnen extrahierten Bilder wenns klappt halt dann nen Bitmap32 Object oder PNGObject wenns nicht konvertiert werden muss.

Viele Grüsse
s!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 Uhr.
Seite 1 von 2  1 2      

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