ProSpeed.dll
Wenn sie Fragen und Anregungen zu meiner ProSpeed DLL oder zu den Profan²-Sourcecodes und Demos haben, dann sind sie hier richtig. Auch neue Vorschläge sind jederzeit willkommen. Und bitte mit richtigem Namen und Email-Adresse einschreiben. Danke.
  Suchen
 Zurück zur Übersicht
 AutorThema: ProSpeed und Png-Grafikformat
Frank Abbing
Datum:07.08.02 17:40 Antwortenals Email verschicken  


Hallo,

ich bin dabei, in ProSpeed noch ein weiteres Grafikformat zu implementieren.
Jpg packt zwar supergut, allerdings kann man diese Bilder nicht für Sprites verwenden (Grafik wird beim Speichern verändert, dadurch bei Sprites oft Transparenz-Probleme).
Gif packt auch ganz gut, funktioniert aber maximal nur mit 8-Bit-Grafiken.
Wmf wird bisher noch wenig genutzt.
Bmp ist schnell, aber gigantisch (ungepacktes Format).
Rle hat schlechte Packraten und kaum ein Grafikprogramm verwendet es.
Psf (ProSpeed-eigenes Format) hat keine sonderliche gute Packrate.

Was fehlt ist ein Packformat, was die Grafikdaten nicht verändert, aber gute Packraten erzeugen kann.
Aus diesem Grund hab' ich an das Png-Format (portierbare Netzwerk-Grafik) gedacht.

Hier mal Testwerte (Dateigröße in Bytes) für ein 800 x 640 (24 Bit) großes Bild mit sehr vielen Grafikinformationen:

BMP: 1440054
GIF:    -
JPG:  102972
PNG:  469946
PSF:  819011
TIF:  583100
TGA:  966378
PCX:  788412

Geht also mal davon aus, das ProSpeed in der nächsten Version auch Png-Bilder laden kann.
Votes welcome...

Gruß, Frank


Moritz Kersten
Datum:07.08.02 18:59 Antwortenals Email verschicken (IsNoMK@gmx.de) 


Hallo Frank,

gute Idee ! Wird dann auch die Alpha-Transparenz von png-Bildern unterstützt ? *hoff*

Wenn ja -> SPITZE !!!

Moritz


Frank Abbing
Datum:07.08.02 19:54 Antwortenals Email verschicken  


Hallo Moritz,

Png bietet ja 256 Transparenzebenen durch Verwendung von Alphakanälen.
Was erhoffst du dir denn genau ?

Gruß, Frank


Moritz Kersten
Datum:07.08.02 21:11 Antwortenals Email verschicken (IsNoMK@gmx.de) 


>>Png bietet ja 256 Transparenzebenen durch Verwendung von Alphakanälen.

Genau das meine ich ja ! Oder wird man die PNG Bilder nur in ProSpeed-Bitmaps laden können, dann wäre die Transparenz ja wieder futsch. Perfekt wäre es wenn die ProSpeed das PNG Bild so kopieren wurde wie ich es im Malprogramm mit transparenz gezeichnet habe und diese dann auch mit der jeweiligen stärke berücksichtigt würde. Dann könnt ich auch auf eine SemiTransMask Funktion verzichten :)

Moritz


Frank Abbing
Datum:07.08.02 21:55 Antwortenals Email verschicken  


Hmmm, natürlich generiert der Png-Decoder aus einem Png-File eine Windows-Bitmap. Das machen alle Decoder so...
Alpha-Transparenz kann später nur beim Kopieren auf den Ausgabe-HDC eingebunden werden, durch die Kopierfunktion (CopyExtBmp). Dummerweise hab' ich dort keinen direkten Grafikzugriff, aber als ByteArray(CreateExtFX) könnte ich eine eigene Alpha-Trans-Kopierroutine einsetzen, ähnlich z.B. der Blur-Funktion.
Ich denke, in meinem Urlaub komme ich nicht dazu (ich bin dann nicht zuhause), vielleicht danach.
Ich werd' mich anstrengen für die nächste PS Version eine zu erstellen, ok?
Aber erstmal PNG.....

Gruß, Frank



Frank Abbing
Datum:07.08.02 21:57 Antwortenals Email verschicken  


P.S. Wenn Alpha-Trans, dann auch mit 256 Ebenen, versprochen...


Frank Abbing
Datum:13.08.02 22:10 Antwortenals Email verschicken (frankabbing@12move.de) 


Hallo Moritz,

die Alpha-Trans Funktion ist fertig, aber noch relativ ungetestet. Ich werde demnächst 2 Wochen nicht zuhause sein, wenn du Lust hast, kannst du gerne eine Test-Prf erstellen.

AlphaTrans() ist ziemlich flexibel, angegeben werden zwei Quellbilder und ein Maskenbild (alles ByteArrays). Jeder Pixel in der Maskenbitmap kann Werte von 0 bis 255 annehmen, also wie versprochen ein Alphatrans mit 256 Ebenen.
Je dunkler ein Pixel in der Maskenbitmap ist, desto sichtbarer wird der Pixel in Quellbitmap 1 angezeigt. Je heller ein Maskenpixel ist, desto sichtbarer wird der Pixel in Quellbitmap 2.

AlphaTrans(
Handle Zielbitmap (%HDC) oder 0,
X Offset zur Zielbitmap,
Y Offset zur Zielbitmap,
Handle (erstellt mit InitExtFX oder CreateExtFX) von Quellbitmap 1,
Handle (erstellt mit InitExtFX oder CreateExtFX) von Quellbitmap 2,
Handle (erstellt mit InitExtFX oder CreateExtFX) der Maskenbitmap
)

Wenn du Lust und Zeit hast, melde dich per email und ich schicke dir die ProSpeed-Beta. Als Beschreibung muß dir momentan noch dieser Text genügen... ;-))

Gruß, Frank


Sven Schmidts
Datum:06.09.02 15:11 Antwortenals Email verschicken (schmidts@flat2serv.de) 


Hallo Frank,

kurze Info, weil wir mal vor längerem darüber geredet haben: Die Anzeige von GIF Dateien ist erlaubt, lediglich das erzeugen von GIF Dateien (z.B. ein Konverter o.ä.) benötigt eine Lizenz. Da habe ich mich seinerzeit etwas vertan, sorry.

Sven


Frank Abbing
Datum:12.09.02 20:59 Antwortenals Email verschicken  


Hallo,

danke, Sven.
Und seit neuestem übrigens auch das Erzeugen von Jpg's !!!

Gruß, Frank


Sven Schmidts
Datum:13.09.02 08:12 Antwortenals Email verschicken (schmidts@flat2serv.de) 


Wie, JPEG erzeugen kostet? Bei wem muss man dann die Lizenz kaufen?


Frank Abbing
Datum:13.09.02 10:38 Antwortenals Email verschicken  


Hi,

Forgent, Texas USA, die Patentrechte laufen bis 2004, nachzulesen in CHIP 10/2002.

Gruß, Frank


Sven Schmidts
Datum:13.09.02 10:53 Antwortenals Email verschicken (schmidts@flat2serv.de) 


Ist echt nicht war. Erst motzen alle auf, jeder darf es einbauen und dann kostet es plötzlich Geld. Ist schon witzig, welche Strategien Microsoft (.NET) und Konsorten verfolgen. witzigerweise werden plötzlich auch viele, vorher hochgepriesene, OpenSource oder Freeware Projekte kommerziell.


Frank Abbing
Datum: 13.09.02 15:30 Antwortenals Email verschicken  


Ja, das ist der Hintergedanke, erst schön populär machen, und wenn es sich zum Standart etabliert hat, kann abkassiert werden. War ja beim GIF auch so...

Gruß, Frank


 Zurück zur Übersicht
 

 Ein kostenloses WebMart Forum
WebMart Homepage Tools kostenlos
Shortwin - denn Glück ist kein Zufall!