ICOLoader

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

 

E. Urbach

ehemals "Basicprogger"

Betreff: ICOLoader

BeitragMo, Jun 05, 2006 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Download (11 KB, ZIP)

Und noch eine Dateierweiterung mehr: Die .ICO Dateien können nun als Pixmap geladen und gezeichnet werden:
Code: [AUSKLAPPEN]

Graphics 640,480,0
Local pixmap:TPixmap = LoadPixmapICO("test.ico")
Cls
DrawPixmap pixmap,0,0
Flip
WaitKey


Braucht man vielleicht, wenn man ein Bildbearbeitungsprogramm schreibt, das auch viele Dateiformate laden sollte.

Begrenzung: 256 x 256 Pixel
Transparenz muss manuell gesetzt werden.

P.S. Ich kenne mich überhaupt nicht mit dem ICO-Format aus, ich habe mir lediglich die Hauptstruktur mit einem Hex-Editor (XVI32) angeguckt und dies in meinem Modul benutzt, bei mir hat das Laden allerdings immer funktioniert.

Edit: Ich habe mir jetzt insgesamt drei Tutorials durchgelesen und habe inzwischen eine neuere Version erstellt.
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik
  • Zuletzt bearbeitet von E. Urbach am Di, Jun 06, 2006 13:09, insgesamt einmal bearbeitet

Markus2

BeitragMo, Jun 05, 2006 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

eine ICO Datei kann mehrere Icons enthalten und diese
auch in verschiedenen Auflösungen/Farbformaten sein .

simi

Betreff: Re: ICOLoader

BeitragMo, Jun 05, 2006 13:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Basicprogger hat Folgendes geschrieben:
Transparenz muss manuell gesetzt werden.

mh ? Warum baust du das nicht gleich ein. Wäre ja kein grosser Aufwand.

Basicprogger hat Folgendes geschrieben:
P.S. Ich kenne mich überhaupt nicht mit dem ICO-Format aus, ich habe mir lediglich die Hauptstruktur mit einem Hex-Editor (XVI32) angeguckt und dies in meinem Modul benutzt, bei mir hat das Laden allerdings immer funktioniert.

Das merkt man. Deine Funktion kann nur Pixmaps mit 16.7 Millionen Farben laden. Allerdings gibt es noch solche mit 256, 16, und 2. Deshalb solltest du deinen Code noch erweitern.

Desweiteren gibts noch ICO-Files, die mehrer Icons enthalten. Diese Files werden deiner Funktion wohl auch ein paar Probleme bereiten.

Wenn du eine gute Beschreibung für das ICO-Format brauchst, wirst du hier fündig => http://www.wotsit.org/

//edit: Mann, bin ich langsam :\
 

E. Urbach

ehemals "Basicprogger"

BeitragMo, Jun 05, 2006 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Desweiteren gibts noch ICO-Files, die mehrer Icons enthalten. Diese Files werden deiner Funktion wohl auch ein paar Probleme bereiten.

Das habe ich nicht gewusst, sowelche Dateien kenne ich gar nicht. Aber ich werds versuchen zu implementieren.

Das mit den Farben konnte ich ja nicht wissen, weil...wie gesagt, ich muss mir erstmal ein paar beschreibungen auf www.wotsit.org durchlesen...
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik
 

E. Urbach

ehemals "Basicprogger"

BeitragDi, Jun 06, 2006 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mir jetzt insgesamt drei Tutorials durchgelesen und habe inzwischen eine neuere Version erstellt.
Ist jetzt auch wesentlich komplexer als die alte Version.

Folgende Features sind hinzugekommen:
Arrow 24 bits per pixel und 8 bpp
Arrow Klasse TIcoHdr erstellt, mit der man alle Headerinformationen abrufen kann (Breite, Größe, Farbtiefe, etc.)
Arrow Es wird automatisch eine indizierte Farbtabelle erstellt
Arrow Mehrere Icons in einer Datei können jetzt auch geladen werden durch die Angabe der Indizes
Arrow Bugfix: Die Begrenzung auf 256x256 Pixel wurde aufgehoben
Arrow Bugfix: Falsche Speicheradresse wurde korrigiert (Header)

Download

Folgendes steht noch auf der Liste:

Arrow 32bpp, 16bpp, 4bpp, 2bpp
Arrow Komprimierte Icons laden
Arrow Icons aus DLLs und EXEs laden durch Indexangabe

Weitere Feature Requests?

P.S. Weiß jemand, wie man eine 32-Bit-Farbmaske anwendet?
0x00FF0000 für den Rot-Kanal
0x0000FF00 für den Grün-Kanal
0x000000FF für den Blau-Kanal
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik

BladeRunner

Moderator

BeitragDi, Jun 06, 2006 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Prinzip hast Du die Maske ja schon wiedergegeben.
Wenn Du einen deiner Hexwerte mit einer beliebigen Farbinfo "AND" nimmst, bleiben nur noch die bits der entsprechenden Farbe gesetzt.

Bsp:
$00fffadc AND $000000ff -> $000000dc, womit nur noch dieser Farbanteil übrig ist.
Bei den anderen musst Du je nach Bedarf halt noch eine Division oder ein SHR durchführen um sie in den Bereich der unteren 8 bit zu bringen.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group