Bildpositionen zwischenspeichern
Übersicht

![]() |
maboxBetreff: Bildpositionen zwischenspeichern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe eine Unbestimmte Anzahl Bilder. Jedes Dieser Bilder soll an verschiedenen Stellen eingezeichnet werden, das heißt es hat mehrere Positionen. Die Anzahl der Positionen ergibt sich erst während dem Programmablauf.
Wie kann ich die Positionen der Bilder zwischenspeichern, um die Bilder Später an diesen stellen einzuzeichnen? Das ganze ist wichtig, damit die bilder nicht x mal geladen werden müssen. |
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zieh dir alles zum Thema Types rein.
Erstelle ein Type mit Feldern für die Koordinaten. Für jedes Bild erstellst du dann ne neue Type-Instanz und trägst x- und y-Position ein. Um alle Bilder zu zeichnen machst du dann einfach ne For Each Schleife die dir für jeden Type das Bild an den entsprechenden Koordinaten einzeichnet. |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit Types kenn ich mich einigermaßen aus.
Das was du beschrieben hast ist zwar schön und gut, jedoch müssten dazu alle Bilder für die es mehrere koordinaten gibt auch mehrmals geladen werden und genau das ist es was ich nicht will. |
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich verstehe nicht, warum du die Bilder, die öfters angezeigt werden sollen, auch öfters lädst.
Du kannst es doch einfach so machen (grober Code) Code: [AUSKLAPPEN] Type Bild Field x,y,num End Type For i=1 to 10 Bild(i)=LoadImage("Bild"+i+".png") Next B.Bild=New Bild B\num=1 B\x=400 B\y=400 B.Bild=New Bild B\num=2 B\x=123 B\y=123 B.Bild=New Bild B\num=2 B\x=10 B\y=10 For B.Bild=Each Bild DrawImage Bild(B\num),B\x,B\y Next Ist es das, was du suchst? Du kannst ein Bild, dass du einmal lädst, sooft zeichnen, wie es dein Rechner erlaubt. ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
mabox hat Folgendes geschrieben: jedoch müssten dazu alle Bilder für die es mehrere koordinaten gibt auch mehrmals geladen werden
Quatsch! Code: [AUSKLAPPEN] For Bild.TBild = Each TBild
DrawImage GlobaleBildVariable, Bild\x, Bild\y Next Du kannst ein Bild natürlich so oft zeichnen wie du willst. |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok ich hab mich schlecht ausgedrückt.
Ich weis, dass ich ein Bild, welches geladen wurde mehrmals einzeichnen kann. ABER ich will nicht alle verschiedenen Bilder gleichzeitig im Speicher haben, da es meistens über 3000 Stück sind. Deshalb will ich die Koordinaten speichern, an welchen das Bild hingezeichnet werden soll, dann das Bild laden, an diesen Stellen einzeichnen und das Bild wieder aus dem Speicher löschen. Dann soll das nächste Bild an den nächsten (zum Bild gehörigen) koordinaten eingezeichnet werden usw. |
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
![]() |
Geeecko |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Bilder in jedem Zeichenvorgang neu zuladen dauert zu lange.
Woher kommen 3000 Bilder? ôÔ |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hört sich sehr nach einer Tilemap an. Dazu mal LoadAnimImage![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Meisterdieb Das Programm soll nichts in Echtzeit anzeigen, sondern aus den Bildern eine Art Collage machen, siehe Worklogs -> "One Image (Workingtitle)"
@Hectic nein mit einer Tilemap ist das nicht lösbar, da alle Bilder einzeln sein müssen. |
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das Problem ist, dass es im grunde nahezu egal ist ob nun 3000 Einzelbilder oder alle in ein ganz großes zusammen gepackt liegen. Denn der Speicherverbrauch wird der selbe sein. Mit den Einzelbildern kann man eventuell noch etwas raus holen, indem man einige doppelt anwenden kann. Jedoch wird jedes einzele auch etwas an Verwaltungsaufwand an Speicher benötigen.
Alles andere ist meiner Meinung nach mit Blitz nicht möglich, falls du so etwas wie - ich glaub das hiess - Silverlight meinst. http://images.google.de/images...amp;tab=wi |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Einzelbilder kann ich doch nacheinander in den Speicher laden und nach dem Einzeichnen wieder löschen. Wenn es ein großes Bild ist (was bei diesem Projekt nichteinmal möglich ist, da es jedes mal andere Bilder sind) wird viel mehr Speicher benötigt.
irgendwie kommt es mit so vor als würden wir aneinander vorbei reden... |
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zwei Types:
Code: [AUSKLAPPEN] Type TBildPos
Field X, Y Field IMGLink.TBild End Type Type TBild Field Bild Field Pfad$ End Type Für jedes Bild legst du ein TBild an, wenn das Bild (vergleich der Pfade) nicht schon vorhanden ist. Jede Position kann in einem TBildPos gespeichert werden. Zum Zeichnen den ersten TBild Eintrag wählen, das Bild laden, alle TBildPos durchgehen zeichnen, instanz löschen, Bild rauswerfen, nächste TBild Instanz... Einsprüche? |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Worklog eben angesehen.
Lese alle Bilder aus den Verzeichnissen und erstelle daraus dann in ein großes Bild mehrere verkleinerte Tiles. Aus diesem Image kannst du dann über DrawImageRect ![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Xeres das ist genau das was ich brauche, zumindest nach deiner Beschreibung. Denn ich versteh noch nicht ganz was das "Field IMGLink.TBild" sein soll und wie man vom TBild alle TBildPos durchgehen kann. Also im Grunde genommen die Verknüpfung zwischen TBild und TBildPos.
Ich schau mir die Types nochmal genauer an, vielleicht versteh ichs dann ![]() @Hectic Ich glaube es ist viel zu viel Aufwand erstmal ein großes Bild aus den vielen kleineren zu erstellen um diese dann wieder auszulesen. Zitat: Ein risiges Image mit mehreren Tausend Pixeln Kantenlänge wird zwar ggf. von unterschiedlichen Grafikformaten unterstützt. Doch was nützt dir das, wenn du es mit keinem Grafikprogramm öffnen kannst, da du sicherlich keine Gigabyte an Grafikkartenspeicher hast. und was du damit meinst versteh ich nicht ganz...ich habe doch garnicht von einem risigen Bild gesprochen.
|
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
interessant wäre zu wissen für welchen zweck 3000(!) unterschiedliche bilder benötigt werden..
vorher ist jede hilfe nur wage anzusehen.. |
||
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/worklogs/125/ lies dashier... | ||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ahh daher kommt mir die thematik so bekannt vor.. oke .. nun werden in dem bildpuzzle 3000 bilder angezeigt oder 3000 VERSCHIEDENE bilder verwendet?
werden 3000 bilder VERSCHEIDENE verwendet wirst du keine großen möglcihkeiten haben viel speicher einzusparen.. werden 3000 bilder angezeigt die teils gleich sind(wie ich im screen des WL sehe) kannst du jedes source bild 1 mal laden und anschließend so oft anzeigen wie du willst.. mehr fällt mir im moment nicht dazu ein. |
||
![]() |
mabox |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie ich am besten Speicher einspare ich meiner Meinung nach schon geklärt (stand auch ursprünglich garnicht zur Frage). Mein Problem ist im Moment die Verbindung von den beiden Types (siehe Xeres Beitrag)
Und die Anzahl der verschiedenen Bilder und der gesamten Bilder variiert natürlich. Manchmal sind es 3000 verschiedene Bilder und auf dem gesamten Bild sind 8000 Bilder und manchmal sind es halt nur 600 verschiedene und auf dem gesamten Bild sind aber trotzdem 8000. |
||
Fujitsu-Siemens Laptop, 2Ghz Intel Core2Duo Prozessor, 2GB Ram, 120GB Festplatte, ATI Mobility Radeon X1400, Windows Vista Ultimate
www.mausoft.de.tl Dönerfresser Homepage |
![]() |
tedy |
![]() Antworten mit Zitat ![]() |
---|---|---|
dann speicher doch die BIldaddresse einfach in dem Type
Die bilder hast du zuvor ja schon einmal geladen Code: [AUSKLAPPEN] type bild field x field y field bildadresse end type ... for each... drawimage bild\bildaddresse,bild\x,bild\y next |
||
01010100 01100101 01000100 01111001 00100000 00111010 01000100 |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
In deinem Worklog habe ich mal gelesen, dass du für jeden Pixel des Originalbildes einen Helligkeitswert bestimmst.
Nach meinem Wissen gibt es 256 Heligkeitsstufen. Außerdem kannst du das Bild als Tilemap betrachten, im Endeffekt ist es nichts anderes, deshalb verstehe ich nicht so wirlich wo dein Problem liegt. Wenn ich mal davon ausgehe, dass du nicht immer die gleichen Bilder nebeneinander haben möchtest, und für jede Stufe 4 Bilder nimmst, hast du 1024 Bilder jetzt kommt es auf die Größe der einzelnen Bilder an, mal angenommen, du verwendest 64² große Bilder (1024*64²*4), dann sind das ca 16MB und die sollten eigentlich in den Speicher passen. Wenn man jetzt noch davon ausgeht, dass du für alle 3 Farben die Helligkeit berechnest, sind es 3072 Bilder, also ca 48 mb und das sollte auch kein Problem sein. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group