![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > moeglichkeiten ein image zu laden | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2012-01-12, 21:20 h PeaBrain Posts: 265 User |
hallo, welche moeglichkeiten und libraries gibt es unter amigaos um images zu laden? am besten aller art, wie jpg oder bmp oder tga's. dann moechte ich gerne noch auf die rohdaten zugreifen koennen, um sie zum beispiel in opengl zu nutzen. danke und beste gruesse, peabrain [ - Answer - Quote - Direct link - ] |
2012-01-12, 21:39 h Polluks Posts: 106 User |
Die perfekte Lösung heißt http://aminet.net/package/util/libs/dtimage habe ich in meinen OpenGL-Ports genutzt: alle Datatypes + raw -- Pegasos II G4, MorphOS 2.7, Zalman M220W Power Mac G3, OSX 10.3 [ Dieser Beitrag wurde von Polluks am 12.01.2012 um 21:53 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2012-01-12, 21:40 h Thore Posts: 2266 User |
Du kannst das Datatypes System ab OS3.x verwenden. Das ist dann auch "aller Art". Sprich, sobald ein entsprechendes DT auf dem System verfügbar ist, kann dein Programm dieses automatisch laden. [ - Answer - Quote - Direct link - ] |
2012-01-13, 09:48 h PeaBrain Posts: 265 User |
danke ![]() ich glaub ich hab sowas gesehen. [ - Answer - Quote - Direct link - ] |
2012-01-13, 16:40 h ZeroG Posts: 1488 User |
@PeaBrain: Keine Ahnung ob die noch dabei sind, aber wenn sinds relativ alte Versionen. Such mal im OS4Depot da wirst du fündig. [ - Answer - Quote - Direct link - ] |
2012-01-13, 21:35 h AGSzabo Posts: 1663 User |
@Polluks: Wenn ich es richtig verstanden habe, geht diese perfekte Lösung über Datatypes. Aber so weit ich weiß, unterstützt Datatypes keinen Alphakanal. Wie geht das also? Ich würde gerne allgemein PNG Images mit Transparenzen für Toolbuttons und andere Gadgets in meinem GUI nutzen. Gibt es da einen Weg? Mit BlitBitmapRastport() geht's wohl nicht. hmm ... WritePixelArray()? Derzeit verwende ich Icons. -- Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system. [ Dieser Beitrag wurde von AGSzabo am 13.01.2012 um 21:37 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2012-01-13, 22:17 h PeaBrain Posts: 265 User |
da ich opengl benutze hoffe ich, dass die libpng auch den alphakanal unterstutzen. ist nur ne doofe einschaenkung fuer den grafiker, wenn er nur png's benutzen kann. [ - Answer - Quote - Direct link - ] |
2012-01-14, 17:37 h Thore Posts: 2266 User |
Wenn Du OS4 benutzt, kannst Du auch die datatypes nehmen und PDTM_READPIXELARRAY, damit dürfte bei PNG auch der Alpha Channel beibehalten werden. [ - Answer - Quote - Direct link - ] |
2012-01-15, 08:57 h akl Posts: 265 User |
@AGSzabo: >Aber so weit ich weiß, unterstützt Datatypes keinen Alphakanal. Doch. [ - Answer - Quote - Direct link - ] |
2012-01-15, 09:59 h AGSzabo Posts: 1663 User |
@akl: Aber nur ab OS4, oder? Und womit bekäme ich dann das Bild richtig ins Blickfeld kopiert? -- Author of Open eXternal User Interfaces, eXternal Format Rippers and the Book "Torakosmos". Developing with E-UAE on an Ubuntu dualcore system. [ - Answer - Quote - Direct link - ] |
2012-01-15, 13:57 h Polluks Posts: 106 User |
@AGSzabo: Die Kombination PDTM_READPIXELARRAY mit PBPAFMT_ARGB gilt auf für MorphOS und AROS. -- Pegasos II G4, MorphOS 2.7, Zalman M220W Power Mac G3, OSX 10.3 [ Dieser Beitrag wurde von Polluks am 15.01.2012 um 13:59 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2012-01-16, 10:26 h akl Posts: 265 User |
@AGSzabo: Nein, auch unter 68k - beispielsweise nutzt AmiKit das entsprechende Feature von akPNG in Verbindung mit einem picture.datatype oberhalb V43 und AfA. Das Blitten/Rendern ist aber sowieso nachgelagert, egal wie das Bild geladen wurde - oder würdest Du den picture.datatype das Rendering übernehmen lassen wollen? [ - Answer - Quote - Direct link - ] |
2012-01-16, 11:11 h Der_Wanderer Posts: 1229 User |
Alphakanal geht erst unter OS4, MOS, AROS oder wenn man AfA+Datatype Replacement hat. Wenn also 68K als Zielplatform mit drin sein soll, kannst du Datatypes nicht nehmen. Ich habe mir für den Zweck einen eigenen PNG Codec geschrieben. Ist blöd und Zeitverschwendung, ich weis, aber anders geht es nicht. Wenn man C benutzt kann man auch PNG als static library einbinden. Auch bei Icons kommt man nur beschwerlich an die Rohdaten (CMIIW). Ich nutze da den Trick, das Icon einmal auf weis (0xFFFFFF) und einmal auf schwarz (0x000000) malen zu lassen (DrawIconState), dann ziehe ich die beiden Bitmaps voneinander ab. Das Ergebnis ist dann der (invertierte) Alphakanal. Die 3 Farbkanäle bekommt man dann von dem schwarzen Bild, indem man die Farbe durch den Alphawert dividiert. (bei 0 muss man natürlich auf eine Farbe ausweichen, z.B. schwarz). Nebeneffekt: so kommt man ohne Fallunterscheidung an alle Icons und bekommt einen Alphakanal, egal ob PNG Icons, GlowIcons, 4-Farb Icons etc.) Zum Blitten: OS3.x hat dafür keinen Befehl. OS4, MOS, AROS und AfA haben da wohl was (WritePixelArrayAlpha ??) Händisch: Zielbitmap mit ReadPixelArray in einen temporären Buffer lesen, Bildchen draufmalen per Hand (for (x=0; x<w; x++) ...) und mit WritePixelArray wieder zurückschicken. Datatypes würde ich das Rendern nicht überlassen, sonst wirds bei vielen Usern nicht korrekt aussehen. Eines der Nachteile von Datatpyes ist, dass es viele verschiedene, mehr oder weniger vollständige Implementierungen gibt, sodass man nie wirklich sagen kann, was passieren wird. -- -- Author of HD-Rec, Sweeper, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, AudioConverter, ScreenCam, PerlinFX, MapEdit, AB3 Includes und viele mehr... Homepage: http://www.hd-rec.de [ Dieser Beitrag wurde von Der_Wanderer am 16.01.2012 um 11:17 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2012-01-17, 09:46 h akl Posts: 265 User |
@Der_Wanderer: Ich meine mich zu erinnern, dass es auch ohne AfA mit einem bestimmten picture.datatype unter 68k gegangen ist - aber leider ist exakt diese uneinheitliche Landschaft bzw. API-Fragmentierung der Grund, warum es einerseits keinen großen Spaß mehr macht, für die Plattform zu entwickeln und warum es andererseits auch nicht mehr ohne zahlreiche "proprietäre" Workarounds geht. [ - Answer - Quote - Direct link - ] |
2012-01-17, 09:56 h PeaBrain Posts: 265 User |
ok, es hoert sich alles ein wenig kompliziert an. aber ich habe im aminet eine libpng fuer 68k gefunden und ich hoffe, ich kann die auch unter os4.1 compilieren. mir gehts ja nur ums reinladen. die daten werden ja dann eh unter opengl verwendet ![]() und unter 68k muss ich mir noch ueberlegen, wie ich das darstelle. aber da ich n ppc und ne graka fuer meinen 1200er habe, wird es wohl erstmal keinen softwaremodus geben. sprich kein aga. [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > moeglichkeiten ein image zu laden | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |