amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Picture datatype unter MOS [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- 2 [ - Beitrag schreiben - ]

26.11.2007, 16:58 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Hat jemand einen Beispiel Code (Sprache egal) wie man ein Bild per Datatype öffnet und sich eine ARGB Bitmap herausholt ?

Ich hab das zwar implementiert, aber es scheint unter MOS Probleme zu machen bei <=256-Farb Bildern, ich erhalte die ARGB Bitmap nur bei 24+ bit Bildern. Sieht so aus, als würde mir MOS ein Palette basierendes Bild nicht in True Color umrechnen wollen. Es schreibt dann gar nichts in die Ziel Bitmap. Unter OS4 + OS3.x geht es.

Hier noch mein Code:

code:
Function.l image_LoadViaDT {image.l,filename.s}
DEFTYPE.BitMapHeader *bmhdp
DEFTYPE.pdtBlitPixelArray DTM
succ.l = False
*DTPic._Object = NewDTObjectA_ (&filename.s,Tags(
                                #PDTA_DestMode, #PMODE_V43,
                                #DTA_SourceType, #DTST_FILE,
                                #DTA_GroupID, #GID_PICTURE,
                                #PDTA_Remap, 0))
If *DTPic
  GetDTAttrsA_ *DTPic,Tags(#PDTA_BitMapHeader,&*bmhdp)
  If image_Create{image,*bmhdp\bmh_Width,*bmhdp\bmh_Height}
    If image_Lock{image}
      DTM\MethodID            = #PDTM_READPIXELARRAY
      DTM\pbpa_PixelData      = \raw_ptr         ; /* The pixel data to transfer to/from */
      DTM\pbpa_PixelFormat    = #PBPAFMT_ARGB    ; /* Format of the pixel data (see "Pixel Formats" below) */
      DTM\pbpa_PixelArrayMod  = \bpr             ; /* Number of bytes per row */
      DTM\pbpa_Left           = 0                ; /* Left edge of the rectangle to transfer pixels to/from */
      DTM\pbpa_Top            = 0                ; /* Top edge of the rectangle to transfer pixels to/from */
      DTM\pbpa_Width          = *bmhdp\bmh_Width ; /* Width of the rectangle to transfer pixels to/from */
      DTM\pbpa_Height         = *bmhdp\bmh_Height
      DoMethodA *DTPic,&DTM
      succ = True
      DisposeDTObject_ (*DTPic)
      image_Unlock{image}
    End If
  End If
End If
Function Return succ
End Function




--
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 26.11.2007 um 17:30 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

26.11.2007, 21:15 Uhr

Blackbird
Posts: 634
Nutzer
@Der_Wanderer:

uii bist du schnell :D

also das einzigste was mir noch einfällt wäre, das MOS sich doch strikt an OS3.1 hält...

wäre es in möglich das es in Os3.1 noch gar keine definition #ReadPixelArray gab (weil V43 extension) ? (ich habe hier nur das NDK3.9)
--
regards
Blackbird

Have a look at:
http://www.blackbird-net.de

Skins for PlayCD OS3.9
BlackShoot, Zombies Apocalypse, GalagaWars, VcdImager-Gui,PerfectPaint

[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 10:58 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Blackbird:
wäre es in möglich das es in Os3.1 noch gar keine definition #ReadPixelArray gab (weil V43 extension) ? (ich habe hier nur das NDK3.9)


Müsste dann nicht so etwas wie <unbekannte Methode> zurückgegeben werden?

Anzunehmen ist ja, dass die speziellen Datatypes nur die Daten im Originalformat liefern (weshalb es funktioniert, wenn Original==Ausgabeformat), aber eine Umrechnung an die Basisklasse (picture.datatype) delegieren, da es ja unsinnig wäre, wenn jedes Datatype Konvertierungsroutinen mitbringt.

Wenn das spezielle Datatype die Methode kennt, das picture.datatype aber nicht, würde es zu diesem beschriebenen Verhalten kommen. Allerdings müsste dann der Rückgabewert der Basisklasse (also unbekannte Methode) zurückgegeben werden).

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 12:11 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Also die Methode ReadpixelArray ist wohl bekannt, da es in 24bit ja funktioniert.

Das mit der umrechnung macht sinn, allerdings ist FileFormat != Audgabeformat, z.B. funktionieren 24bit Bilder, z.B: JPEG, aber ich fordere ja ARGB, also 32bit an.
Das Problem scheint nur bei farbindiziert vs. Truecolor zu bestehen.
Möglicherweise kann man bei Tiefe<=8 erfolgreich ein LUT Pixelarray anfordern. So könnte man einen Woraround schreiben, schön ist das aber nicht.

Den Rückgabewerte sollte ich überprüfen, das tue ich ja noch nicht.

--
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


[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 12:26 Uhr

akl
Posts: 265
Nutzer
@Der_Wanderer:
Man kann unter V43 für 8 Bit LUT anfordern, für 24-32 Bit entweder RGB oder ARGB/RGBA. Das Verhalten des picture.datatype unter MOS ist korrekt, denn die Applikation sollte natürlich vor dem Lesen die Tiefe der Bitmap im Bmhd überprüfen, und die ist in Deinem Beispiel nunmal <= 8. Meines Wissens unterstützt CyberGraphX für Screens auch nicht das Lesen von 24/32-Bit-Daten aus 8 Bit-Bitmaps und der picture.datatype ist einfach analog konstruiert. Technisch gesehen macht das auch Sinn, denn bei 24/32 Bit wird einfach die Bitmap ausgelesen (ggf. mit Byte-Offset/Reordering), wohingegen bei einer 8->24 Bit-Konvertierung der Inhalt des LUT (entweder des originalen oder des durch Remapping entstandenen) mit der Bitmap (entweder der originalen oder der durch Remapping modifizierten) verknüpft werden muss. Alpha ist immer nicht vorhanden. Bei Remapping wäre des Ergebnis suboptimal, ohne Remapping stellt sich die Frage, warum man die (ziemliche triviale) Konvertierung nicht selbst vornimmt...

[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 12:28 Uhr

akl
Posts: 265
Nutzer
@Holger:

>Müsste dann nicht so etwas wie <unbekannte Methode> zurückgegeben
>werden?

Nein, weil man den pic-dt V43 unter OS 3.1 (bis ca. 3.5 oder wann immer das Defaultverhalten eigenmächtig umdefiniert wurde) jeweils vorher erst explizit in "V43-Modus" umschaltet.

[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 12:36 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@akl
Nunja, die Idee der Datatypes ist doch eigentlich, solche Sachen transparent zu handhaben. Du kannst ja auch mittels DT ein 24bit Bild auf einem 256 Farb Screen anzeigen lassen und auch ein 256 Farb Bild auf einem True-Color Screen, d.h. das picture.datatype hat bereits den Code implementiert, um diese Konvertierung vorzunehmen.

Es gibt ja auch möglicherweise Pixelformate, von denen ich nichts weis, z.B. 48bit etc.


Das selbst zu remappen ist nicht ganz trivial, denn ich benötige auch die Colormap. Wie bekomme ich die denn ?


--
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


[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 15:46 Uhr

Blackbird
Posts: 634
Nutzer
@Der_Wanderer:

also ich habe mal folgendes probiert:

succ.l=DoMethodA (*DTPic,&DTM)
If succ
DisposeDTObject_ (*DTPic)
Else
error {"image_load_via_DT: Unable to load via Datatype "+Chr$(34)+filename.s+Chr$(34)+"!"}
EndIf

DoMethodeA gibt dann unter MOS 0 aus, bedeutet also das die Methode nicht angewendet werden kann...

unter OS4 klappt das...
--
regards
Blackbird

Have a look at:
http://www.blackbird-net.de

Skins for PlayCD OS3.9
BlackShoot, Zombies Apocalypse, GalagaWars, VcdImager-Gui,PerfectPaint

[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 16:18 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@Blackbird

Ok, dann haben wir ja den kleinen Übeltäter...

Allerdings solltest du auch bei Fehlschlag das Bild frei geben... ;-)

Dann müste ich nur noch wissen, wie man an die Colormap kommt, dann implementiere ich das remappen halt selbst... (grummel)
--
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


[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 17:02 Uhr

Blackbird
Posts: 634
Nutzer
@Der_Wanderer:

>Allerdings solltest du auch bei Fehlschlag das Bild frei geben... ;-)

ups :glow:

kann passieren beim austesten... :D
--
regards
Blackbird

Have a look at:
http://www.blackbird-net.de

Skins for PlayCD OS3.9
BlackShoot, Zombies Apocalypse, GalagaWars, VcdImager-Gui,PerfectPaint

[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 17:12 Uhr

thomas
Posts: 7716
Nutzer
@Der_Wanderer:

PDTA_CRegs oder PDTA_ColorRegisters oder so ähnlich. Eins gibt dir 32bit-Werte, die man direkt in LoadRGB32 füttern kann und das andere gibt 8bit-Werte, wie in der CMAP einer IFF-Datei. Steht alles in den AutoDocs.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 17:18 Uhr

Blackbird
Posts: 634
Nutzer
@thomas:

jupp, stimmt

#PDTA_CRegs wäre für 32bit

#PDTA_GRegs wird beim layout erzeugt

#PDTA_ColorRegisters für das eigentliche Colorregister

#PDTA_ColorTable und #PDTA_ColorTable2 sind für die Shared Pens

danke
--
regards
Blackbird

Have a look at:
http://www.blackbird-net.de

Skins for PlayCD OS3.9
BlackShoot, Zombies Apocalypse, GalagaWars, VcdImager-Gui,PerfectPaint

[ - Antworten - Zitieren - Direktlink - ]

27.11.2007, 17:21 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ok, dann werde ich den WORKAROUND (extra für MOS) implementieren. Wäre natürlich schneller gewesen, wenn das MOS DT das gleich nativ macht, wie OS4 und OS3.x auch ... (stichel;-)


--
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


[ - Antworten - Zitieren - Direktlink - ]

28.11.2007, 16:02 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Hm... ein Minibeispiel wie ich an die PDTA_ColorRegisters komme wäre noch interessant. Ist das eine Datatype Methode oder wie bekomme ich die Werte ?

--
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


[ - Antworten - Zitieren - Direktlink - ]

28.11.2007, 16:13 Uhr

thomas
Posts: 7716
Nutzer
@Der_Wanderer:

PDTA = Picture DataType Attribute
PDTM = Picture DataType Method

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

28.11.2007, 16:41 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ja, das habe ich mittlerweile herausgefunden.
Allerdings sieht es so aus als ob

GetDTAttrsA_ (*DTobj,Tags(#PDTA_ColorRegister,mycolors))

mir nur den ersten Pen in mycolors schreibt. Wie bekomme ich die anderen pens ?

--
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


[ - Antworten - Zitieren - Direktlink - ]

28.11.2007, 16:47 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Ok, habs hinbekommen. Es liefert natürlich einen Pointer auf das ColorRegister Array.
Danke!

--
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


[ - Antworten - Zitieren - Direktlink - ]

28.11.2007, 16:50 Uhr

thomas
Posts: 7716
Nutzer
@Der_Wanderer:

Ist es wirklich so schlimm, mal einen kurzen Blick in die Autodocs zu werfen ?

Und hast du schon jemals zuvor GetDTAttrs oder irgend ein anderes GetXYAttrs benutzt ? Hast du dabei jemals etwas anderes als genau 4 Bytes zurückbekommen ? Und wenn du das weißt, ist der Rückschluß so schwer, daß man immer entweder eine 32bit-Zahl oder einen 32bit-Zeiger zurückbekommt ? Und kann man dann nicht folgern, daß, wenn man 768 Bytes benötigt, man einen Zeiger auf eben diese 768 Bytes geliefert bekommt ?

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ Dieser Beitrag wurde von thomas am 28.11.2007 um 16:51 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

28.11.2007, 17:04 Uhr

Sprocki
Posts: 655
Nutzer
Zitat:
Original von Der_Wanderer:
Es schreibt dann gar nichts in die Ziel Bitmap. Unter OS4 + OS3.x geht es.

Der Bereich für das Bild wurde also gemalt, blieb damit aber einfach leer? Das könnte das Problem lösen, das ignition unter MorphOS hat (auch 2.0 noch). Dort sind die Buttons in der Leiste allesamt grau (also wird nichts hineingemalt, so wie es aussieht). Unter OS3 werden sie korrekt angezeigt.
--
(ale rektzschraibfela wurtn nachtrehglich unt mit apsichd aingfuhkt)

[ - Antworten - Zitieren - Direktlink - ]

28.11.2007, 17:08 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@Sprocki
Die DTM ReadPixelArray macht dann einfach gar nichts, die Bitmap bleibt also unberührt. Wenn man sie einfach ohne Clear allociert, hat man dann GFX Trash.
Wandle die Bilder doch mal in 24bit um, und schau obs 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



[ Dieser Beitrag wurde von Der_Wanderer am 28.11.2007 um 17:10 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

28.11.2007, 17:12 Uhr

Sprocki
Posts: 655
Nutzer
@Der_Wanderer:

Muß ich Axel mal vorschlagen. Vielleicht hat er selbst auch schon daran gedacht und es vergeblich probiert, aber es wäre prima, wenn wir das Problem endlich weg hätten.
--
(ale rektzschraibfela wurtn nachtrehglich unt mit apsichd aingfuhkt)

[ - Antworten - Zitieren - Direktlink - ]

28.11.2007, 17:39 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@thomas
Ja, hast ja recht. Ich programmiere aber so viel (auch auf anderen Plattformen), dass ich solche Dinge manchmal wieder vergesse.
Danke an alle Beteiligten, ich denke das Problem ist nun gefixed. Ich warte nur noch auf die Antwort von Blackbird.

--
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


[ - Antworten - Zitieren - Direktlink - ]

30.11.2007, 15:35 Uhr

Der_Wanderer
Posts: 1229
Nutzer
Hm.... PDTM_READPIXELARRAY scheint unter MOS auch nicht mit PBPAFMT_LUT8 zu gehen.

Grundsätzlich geht READPIXELARRAY, aber nur mit TrueColor Bildern. Bei Farbindizierten geht es weder mit ARGB noch mit LUT8.

Was nun ? (Ausser MOS support Einstellen ?)

--
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


[ - Antworten - Zitieren - Direktlink - ]

30.11.2007, 16:12 Uhr

thomas
Posts: 7716
Nutzer
@Der_Wanderer:

PDTA_BitMap gibt dir die Bitmap zurück.

Vielleicht solltest du das Programm erstmal so umschreiben, daß es auch auf WB3.1 ohne Grafikkarte funktioniert. Dann würden solche Probleme gar nicht erst auftreten.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

30.11.2007, 16:44 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@thomas,

ok, hab es nun mittels PDTA_BitMap implementiert.
Unter OS3.x kein Problem. Mal sehen was MOS dazu sagt.

Ich dacht nur, dass es effizienter ist, meine ARGB Bitmap direkt vom Datatype füllen zu lassen, als es über eine Bitmap zu schleussen, da man hier die Daten zweimal im Speicher benötigt.

BTW, gibt es eine einfache Möglichkeit, eine Bitmap in eine ARGB Bitmap zu kopieren ? Ich lege derzeit einen RastPort drumherum und nehme ReadPixelArray oder ReadPixelArray8, um an die Daten zu kommen.

--
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


[ - Antworten - Zitieren - Direktlink - ]

30.11.2007, 16:50 Uhr

thomas
Posts: 7716
Nutzer

Zitat:
Unter OS3.x kein Problem.

Ohne Grafikkarte, ohne 3.5/3.9, ohne V43-Datatypes. Da gibt es kein ReadPixelArray und sowas.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

30.11.2007, 16:56 Uhr

Der_Wanderer
Posts: 1229
Nutzer
@thomas

Ok, wie würdest du an 24bit Daten eines Bild kommen, so dass es überall läuft ?

Evtl. setze ich bei meinen Progs Grafikkarte und v43 Datatypes vorraus. Irgendwo ist halt Schluss. Die meisten Sachen sind sowieso zu aufwendig für ein System ohne Graka.
Aber unter MOS sollte es laufen.
Also minimum wäre
MOS, OS4 oder OS3.x mit v43 DT.



--
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


[ - Antworten - Zitieren - Direktlink - ]

30.11.2007, 17:51 Uhr

Kronos
Posts: 1168
Nutzer
@Der_Wanderer:

Hier ein alter Schnipsel aus SteamDraw,da gehen alle Tiefen und der
"buffer" ist 24Bit tief (war auch mal 32, aber das machte anderswo
Probleme).


code:
bool GL_BitMap::Load(char *fname)
 {
  Object *po;
  int er;
  APTR x;
  ULONG retval = FALSE;
  struct BitMap *BitMap;
  InitRastPort(&mask);
  strcpy(name,fname);
  struct BitMapHeader *bmh;
  if(po = NewDTObject((void *)name,
              DTA_SourceType       ,DTST_FILE,
              DTA_GroupID          ,GID_PICTURE,
              PDTA_Remap           ,TRUE,
              PDTA_Screen          ,MyScreen,
              PDTA_DestMode        ,PMODE_V43,
              PDTA_FreeSourceBitMap,TRUE,
              OBP_Precision        ,PRECISION_IMAGE,
              TAG_DONE))
   {
    if(DoMethod(po,DTM_PROCLAYOUT,NULL,1))
     {
      GetDTAttrs(po,PDTA_DestBitMap,&BitMap,TAG_DONE);
      GetDTAttrs(po,PDTA_BitMapHeader,&bmh,TAG_DONE);
      rwidth =bmh->bmh_Width;
      rheight =bmh->bmh_Height;
      rdepth = bmh->bmh_Depth;
      if (BitMap)
       {
        depth = GetBitMapAttr(BitMap,BMA_DEPTH);
        width = GetBitMapAttr(BitMap,BMA_WIDTH);
        height = GetBitMapAttr(BitMap,BMA_HEIGHT);
        stride = (width * 4 + 16) / 16 * 16;
        mask.BitMap = BitMap;
        if(buffer = new unsigned char[stride * height])
         {
          er = ReadPixelArray(buffer,0,0,stride,&mask,0,0,width,height,RECTFMT_RGB);
          img.attach((unsigned char*)buffer,width,height,stride);
          retval = TRUE;
         }
       }
     }
    DisposeDTObject(po);
   }
  return retval;
 }


MfG
Kronos
--
Only the good die young all the evil seem to live forever

[ - Antworten - Zitieren - Direktlink - ]

30.11.2007, 18:09 Uhr

Der_Wanderer
Posts: 1229
Nutzer
hm... ich wusste gar nicht, dass ReadPixelArray auch aus einer Tiefe <=8 Bitmap lesen kann.
Und warum benötigst du einen Screen ? ProcLayout remapped auf den Screen, oder nicht ?
--
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


[ - Antworten - Zitieren - Direktlink - ]

30.11.2007, 18:49 Uhr

Kronos
Posts: 1168
Nutzer
Habs grad nochmal getestet, und ja es geht definitiv mit 8Bit.

Warum ich den Screen brauche weiss ich nicht, nur das ich ihn brauch, ohne gibts nur schwarz (24Bit Bilder funltionieren aber noch).

Denk mal das es da irgentwie ums remappen geht....

MfG
Kronos
--
Only the good die young all the evil seem to live forever

[ - Antworten - Zitieren - Direktlink - ]


-1- 2 [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Picture datatype unter MOS [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.