![]() |
DEUTSCHE VERSION |
|
| Links | | | Forums | | | Comments | | | Report news |
| Chat | | | Polls | | | Newsticker | | | Archive |
| amiga-news.de Forum > Programmierung > iff24 Speichern? | [ - Search - New posts - Register - Login - ] |
| -1- | [ - Post reply - ] |
|
2008-09-16, 18:52 h MaikG Posts: 5172 User |
Wie speichert man die 24 Bit Variante des Formats? BMHD hab ich glaube ich schon kapiert aber wie kommen die Bildpunkte jetzt in die Datei(unkompremiert weils einfacher ist)? [ - Answer - Quote - Direct link - ] |
|
2008-09-16, 20:15 h Der_Wanderer Posts: 1229 User |
Meine Antwort wie immer: in Amiblitz waere das... image_Save{0,"myImage.iff",@"ILBM"} oooder schau dir den Code dazu an. "iff/ilbm.include.bb2". Du musst die 24bit RGB Daten in 24 einzelne Bitplanes verwandeln. Das ist super ineffizient und langsam, deshalb gibt es auch das "DEEP" Format, was aber nicht ganz offiziell ist und nicht unbdingt immer unterstuetzt wird. -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
|
2008-09-16, 21:43 h MaikG Posts: 5172 User |
24 Bitplanes, für 24 Bit noch Planar speichern? Ich dachte an sowas wie 0xFFFFFF 0xFF0000 0x00FF00 0x0000FF für ein weiss, rot, grün und blauen Punkt. bb2 Dateien, wo immer die auch her ist kann man meistens nicht lesen(kein ASCII). Wie siehts mit Speichern via Datatype aus? Ich habe ein Beispiel dafür gefunden aber nicht so richtig durchgesehen. Weil da würde nie die Datatype selectiert mit dem man Speichern will. [ - Answer - Quote - Direct link - ] |
|
2008-09-16, 22:34 h Blackbird Posts: 634 User |
@MaikG:Zitat: da hast du zwar recht, aber wenn du Ab3 installierst, dir den Source einlädst,kannst du das anschließend auch selbst als ascii speichern und lesen... -- regards Blackbird Have a look at: http://www.blackbird-net.de Skins for PlayCD OS3.9 BlackShoot, Zombies Apocalypse, GalagaWars, VcdImager-Gui,PerfectPaint [ - Answer - Quote - Direct link - ] |
|
2008-09-16, 22:47 h Der_Wanderer Posts: 1229 User |
Zitat:Yup. Zitat:nope. Das wäre IFF-DEEP, kein normales 24bit IFF. Zitat:Man kann alles lesen bis auf die Tokens, und die verwende ich kaum. Die Includes sind ALLE bei der Distribution dabei, die man hier für Umme kriegt und damit die .bb2 Files sogar richtig lesen kann ;-) http://amiblitz3.amiforce.de Zitat:Datatypes unterstützen "nur" IFF-ILBM zum speichern. Und das auch nur zuverlässig in 8bit oder weniger. 24bit crashed zumindest unter OS3.1, OS3.5 und 3.9. Wenn du aber immer noch nicht AB3 herunterladen willst, habe ich dir den Auszug des relevanten Teils mal rauskopiert: - die Routine kann RGB und ARGB, je nachdem ob bitdepth=24 oder 32 ist - sie geht von einem ARGB PixelArray aus in ARGBptr, es sollte aber ein Leichtes sein das zu ändern falls deine Daten in einem anderen Pixelformat vorliegen - die anderen Variablen sollten intuitiv oder aus dem Kontext sein) code: P.S: Ja, ich weiss dass es Arrays gibt. Hier geht es nicht um Esthetik, sondern um Speed. -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ Dieser Beitrag wurde von Der_Wanderer am 16.09.2008 um 22:51 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
|
2008-09-17, 08:50 h thomas Posts: 7723 User |
Zitat: Dann hast du's nicht richtig gemacht. Wenn ein 24bit-Datatype installiert ist (also auf jeden Fall unter 3.5 und 3.9) funktioniert das Speichern von 24bit-Daten einwandfrei. Die Datatypes kommen nur mit 15/16bit-Daten nicht zurecht, die muß man erst auf 24bit umrechnen. Aber abstürzen tut da trotzdem nichts. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
|
2008-09-17, 10:33 h Der_Wanderer Posts: 1229 User |
@thomas Was mache ich falsch? code: Als Fehlermeldung bekomme ich "Unable to write IFF!", also DoDTMethodA_(*DTPic,0,0,&DTMW) schlägt fehl. BTW, kann man verhindern dass die Bitmap bei DisposeDTObject freigegeben wird? -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ Dieser Beitrag wurde von Der_Wanderer am 17.09.2008 um 10:54 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
|
2008-09-17, 12:03 h thomas Posts: 7723 User |
@Der_Wanderer: Welches Pixelformat hat die Bitmap denn ? Wie gesagt, das muß PIXFMT_RGB24 sein, sonst geht es nicht. Kann auch sein, daß die ModeID dazu passen muß, das weiß ich aber nicht sicher. Mein Code setzt auch noch XAspect, YAspect, PageWidth und PageHeight im BitMapHeader, aber das ist glaube ich nur, damit Programme wie PPaint das Bild korrekt laden. Zitat: Das ist doch kein Crash ! Zitat: Es gibt ein PDTA_FreeSourceBitMap. Ich habe aber noch nicht ausprobiert, ob das was bewirkt. Da man die Bitmap in den meisten Fällen eh nach 24bit konvertieren muß, habe ich immer eine temporäre angelegt. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
|
2008-09-17, 12:24 h Der_Wanderer Posts: 1229 User |
Zitat:Die Bitmap ist PIXFMT_ARGB32, die der Name ARGBBitmap_ptr vermuten lässt ;-) Dann wirds wohl daran liegen. Werde es vorher konvertieren. D.h. es geht aber auch kein alpha Channel :-( Zitat:Ok, danke für den Hinweis. so weit war ich nur noch nie... Zitat:Ja, das ist kein Crash. Crashs bekam ich aber früher, evtl. lags aber auch an meinem Code. Sorry, habe da wohl übertrieben.Zitat: Zitat:aha, danke.Zitat: Zitat: Ja, das ist dämlich. Der Vorteil von meinem Code ist, er kann auch ARGB speichern und benötigt lediglich eine Zeile als temporären Buffer. Manchmal geht es einfach nicht, eine Bitmap zweimal im Speicher zu halten, wenn es gosse Bilder sind. Das macht dann auch den VMem Approach vom Zeichenprogramm zunixhte. -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ Dieser Beitrag wurde von Der_Wanderer am 17.09.2008 um 12:25 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
|
2008-09-17, 14:09 h Der_Wanderer Posts: 1229 User |
@Thomas Auch das hier geht nicht, sollte doch aber, oder? code: succ = DoDTMethodA_(*DTPic,0,0,&DTMW) scheitert wieder, und erzeugt auch keine IFF Datei, sondern eine Datei der Länge 0. -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ Dieser Beitrag wurde von Der_Wanderer am 17.09.2008 um 16:48 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
|
2008-09-17, 15:14 h thomas Posts: 7723 User |
@Der_Wanderer: PDTA_SourceMode ist Quatsch. Wenn du das wegmachst, dann geht's. Zitat: Die Datei wird durch den Open erzeugt, nicht durch die Methode. Die Methode schreibt einfach nichts. Wenn succ 0 ist, solltest du die Datei löschen. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
|
2008-09-17, 15:29 h Der_Wanderer Posts: 1229 User |
Geht auch ohne PDTA_SourceMode nicht. (wobei das laut Docu notwenig ist, wenn man als Quelle eine non-standard Bitmap angeben will, also das Pendant zu PDTA_DestMode) Die Bitmap wird aber angelegt, daran liegts nicht. Ich kann mich erinnern, dass wir schonmal einen Thread darüber hatten, da gibt es aber auch nicht. Der Code geht jetzt aber auch nicht mit 8bit, vorher hatte ich das mal geschafft dass 8bit ging. -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ Dieser Beitrag wurde von Der_Wanderer am 17.09.2008 um 15:54 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
|
2008-09-17, 20:33 h thomas Posts: 7723 User |
Zitat: Seltsam. Ich habe genau dein Beispiel benutzt, 1:1 nach C übersetzt und dann solange probiert, bis es funktionierte. Am Ende hing es nur am SourceMode. Wenn das drin war, dann ging's nicht und wenn's draußen war, dann ging's. Schau dir mal dieses Beispiel an: http://thomas-rapp.homepage.t-online.de/examples/savewin.c Das funktioniert auf allen mir bekannten Plattformen. Hab's gerade nochmal getestet. Bei <= 8bit mußt du eine ModeID angeben. Mit den Tags muß man immer ein bißchen nach Gefühl entscheiden, welche für NewDTObject überhaupt relevant sind. Die Dokumentation schweigt sich darüber leider aus. Viele sind einfach nur für die Kommunikation zwischen Sub-Klasse (also ilbm, jpeg, gif etc.) und picture.datatype gedacht, die braucht man im Anwendungsprogramm überhaupt nicht. PDTA_SourceMode ist eins davon, soviel ich weiß. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
|
2008-09-18, 12:21 h Der_Wanderer Posts: 1229 User |
@thomas: Danke für das Beispiel. Im Prinzip mache ich das genauso, das hat mich grübeln lassen... Dann habe ich das Datatpye von AfA entfernt und es geht! D.h. das AROS Datatype kann nicht speichern, zumindest nicht 24bit. Das OS3.9 kann definitiv speichern. Das werde ich mal bei Bernd anmelden. -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
|
2008-09-18, 13:08 h thomas Posts: 7723 User |
@Der_Wanderer: Also ich habe gestern abend OS 3.1 ohne und mit Grafikkarte, OS 3.9 mit Grafikkarte, OS 4.0 und MorphOS ausprobiert und die gingen alle. AfA habe ich nicht getestet. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
|
2008-09-19, 11:30 h Der_Wanderer Posts: 1229 User |
@MaikG Sorry dass ich den Thread etwas benutzt habe, dafür hast du nun Basic Code um "per Hand" zu speichern sowie via Datatype, mit der Einschränkung, dass es auf AfA Systemen vorerst nicht geht. -- Thilo Köhler, Author von: HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, TK AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
|
2008-09-19, 22:39 h MaikG Posts: 5172 User |
Ist kein Problem, habe beides versucht in MBasic zu übersetzen. Das mit den Datatype scheint mir einfacher. Allerdings haut da irgendwas noch nicht hin: code: Da kommt ein Gelber "Recoverable Alert" [ - Answer - Quote - Direct link - ] |
| -1- | [ - Post reply - ] |
| amiga-news.de Forum > Programmierung > iff24 Speichern? | [ - Search - New posts - Register - Login - ] |
|
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |