Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Schnelles nachladen von Bilddateien (https://www.delphipraxis.net/157548-schnelles-nachladen-von-bilddateien.html)

rollstuhlfahrer 16. Jan 2011 12:18

AW: Schnelles nachladen von Bilddateien
 
5478 Pngs ist schon ein klein wenig viel. Aber mal ne Frage: Wenn du das Bild aus einem Stream ließt, ist es ja immernoch ein PNG-Bild. Heißt Delphi kann damit nicht von Haus aus umgehen und braucht Fremdkomponenten. Diese brauchen jetzt vom Laden bis zum Umsetzen auch ein klein wenig Zeit.

Ist es denn nicht ein Versuch wert, mit Fenster-Regionen zu arbeiten? Ein kleines Beispiel findest du hier: http://www.delphi-fundgrube.de/faq07.htm . Mit Regionen lässt sich aber noch eine ganze Menge anderer Spielereien veranstalten (laut MSDN). Irgendwo bin ich auch mal auf einen Code-Schnipsel gestoßen, der bewirkt hat, dass eine Form genauso aussieht, wie das Bild, das drauf geklatscht war (also BMP, wobei Pixel 0,0 die Transparenzfarbe angegeben hat).

Bernhard

Memnarch 16. Jan 2011 13:29

AW: Schnelles nachladen von Bilddateien
 
@Rollstuhlfahrer: Mit Regionen kannste nur dein Fenster in eine gewünschte form zerschnipseln, aber KEINE semitransparenz o:O. BMP...wen ich das nehme explodiert der speicher^^.

@Namenloozer. MH okay greayscaled. Hatte mal in GIMP ein bild nach greyscaled konvertiert, aber hatte absolut keinen unterschied in der größe gemacht^^". Muss ich nochmal gucken.

EDIT: @Namenloozer: Wgen meiner sync technik muss ich sowieso eine tabelle an den anfang schreiben um praktisch einen index aller files zu bekommen ;)

MFG
Memnarch

Aphton 16. Jan 2011 14:35

AW: Schnelles nachladen von Bilddateien
 
Wirst du bzw. könntest du das dann veröffentlichen (exe; src ist mir egal...)? Es ist interessant, den Entwicklungsstand mitverfolgen zu können =D

olee 16. Jan 2011 14:48

AW: Schnelles nachladen von Bilddateien
 
Ich hätte einen Vorschlag.

Wenn es nur um eine Maske geht, kannst du vllt. ja auch ein eigenes Dateiformat verwenden, wodurch du den Speicherverbraucht drastisch senken könntest (1 Byte je Pixel).
Die Frage ist dann nur, wie du das Bild dann schnell auf den Bildschirm anwenden könntest...

MFG Björn

Namenloser 16. Jan 2011 15:03

AW: Schnelles nachladen von Bilddateien
 
1 Byte je Pixel? Das wäre doch immer noch riesengroß bei 5000 Bildern. Damit wirst du niemals einen geringeren Speicherverbrauch erreichen als mit PNG... Wenn dann würde ich zumindest eine RLE-Kodierung verwenden, das sollte bei dieser Art von Bildern auch schon recht viel Platz sparen, und hat den Vorteil, dass es sich schnell dekodieren lässt.

Memnarch 16. Jan 2011 15:54

AW: Schnelles nachladen von Bilddateien
 
@Aphton: Ja ich release das fertige projekt WENN es fertig ist^^.

Das mit dem 1Byte pro pixel wäre optimal, aber leider geht das wohl standartmässig mit PNGs nicht >.<.

Und jetzt hab ich mich doch glatt verhaspelt XD.
Hab alles in eine datei gepackt, und kenne beim auslesen startpunkt und länge jedes bildes. Wie lade ich das jetzt wieder richtig^^".
Vllt in eine Memorymappedfile lesen und dann der entsprechenden bildkomponennte zuweisen o.O

EDIT: hat schon geklappt, mit TMemoryStream :)

Namenloser 16. Jan 2011 16:27

AW: Schnelles nachladen von Bilddateien
 
Zitat:

Zitat von Memnarch (Beitrag 1075068)
Das mit dem 1Byte pro pixel wäre optimal, aber leider geht das wohl standartmässig mit PNGs nicht >.<.

Wie kommst du darauf? Natürlich geht das! Ich hab dir den Link zu den möglichen Formaten doch schon geschickt...

Memnarch 16. Jan 2011 17:18

AW: Schnelles nachladen von Bilddateien
 
Gut okay(dan habe ich wohl nicht richtig gelesen) aber wie bekomme ich die jetzt hin?
Ich meine ich habe hier seeeeehr viele bilder. Im moment 32bit RGBA(aus Vegas gerendert).
Gibt es da nen tool mit dme ich das mit allen "gleichzeitig" machen kann o.O.

Noch ein problem: Bisher habe ich TGPImage benutzt, das kann abe rnicht so ohne weiteres aus einem Memorystream lesen. (meine aktuelle funktion gibt einen memorystream mit den daten des gewünschten bildes zurück). Hatte dann gedacht auf TPNGImage umzusteigen, aber...dann kriege ich bei der übertraging von TPNG nach TBitmap per draw dochwieder nen geschwindigkeitsverlust oder?


MFG
Memnarch

xaromz 16. Jan 2011 19:20

AW: Schnelles nachladen von Bilddateien
 
Hallo,

auch TGPImage kann aus einem Stream lesen, natürlich nicht aus einem Delphi-Stream, aber aus einem IStream. Mit Delphi-Referenz durchsuchenTStreamAdapter hast Du aber eine Klasse, die aus für einen Stream dieses Interface implementiert.

Gruß
xaromz

Memnarch 16. Jan 2011 20:37

AW: Schnelles nachladen von Bilddateien
 
Ja adarauf war ich schon gestosse, da hatten man aber wohl probleme das richtig in dne istream zu bekommen weil delphi das nicht so gut implimentierte(oder so ähnlich) war vllt nen älterer beitrag, ich buddle habs datum nich gemerkt^^"

Werds mir nochmal angucken.

PS: jemand ne idee wo ich eine einführung finde wie ich in Delphi mit DirectX einfach images auf dem bildschirm zeichne?
Die einführungen die ich fand, fangen immer zielgerichtet auf 3d an, aber das bring tmich wneig weiter :( (DX mal ausprobieren wie sich das mit meinem projekt verträgt :P)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz