AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bestimmte Grafik aus einer einzigen Resource laden?
Thema durchsuchen
Ansicht
Themen-Optionen

Bestimmte Grafik aus einer einzigen Resource laden?

Ein Thema von stOrM · begonnen am 6. Jul 2008 · letzter Beitrag vom 11. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#1

Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 6. Jul 2008, 12:03
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!
Miniaturansicht angehängter Grafiken
rc_data_formblack_414.png  
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#2

Re: Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 9. Jul 2008, 22:58
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
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 10. Jul 2008, 00:52
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!
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#4

Re: Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 10. Jul 2008, 10:16
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
  Mit Zitat antworten Zitat
rotfc
(Gast)

n/a Beiträge
 
#5

Re: Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 10. Jul 2008, 11:22
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"
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 10. Jul 2008, 11:27
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!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 10. Jul 2008, 12:32
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
  Mit Zitat antworten Zitat
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#8

Re: Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 10. Jul 2008, 12:43
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
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 10. Jul 2008, 12:46
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 )
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
436 Beiträge
 
Delphi 10.3 Rio
 
#10

Re: Bestimmte Grafik aus einer einzigen Resource laden?

  Alt 10. Jul 2008, 12:55
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 )
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!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 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