8 bites és 32 bites windows BMP-re konvertálás

Eclipse RCP alkalmazás product configuration-t szeretnék csinálni. Itt a windows alatt használandó ikont be lehet állítani vagy egy ico fájllal, vagy 7 különböző bmp fájl megadásával.

Amiket elő kell állítani:
16x16 8bit
16x16 32bit
24x24 8bit
32x32 8bit
32x32 32bit
48x48 8bit
48x48 32bit

Arra gondoltam, hogy az egészet generálom ílyen parancsokkal egy közös forrásból:
$ convert icon.png -resize 16x16 -depth 8 icon-l.bmp
$ convert icon.png -resize 16x16 -depth 32 icon-h.bmp

A probléma az, hogy a depth értéket az imagemagick teljesen ignorálja, mindig 24 bites bmp-t gyárt.
Az ico fájl létrehozásához is talátam neten a png2ico programot, az a 32 bites ikont nem hajlandó legyártani, míg a
ppmtowinicon (ez ppm fájlokból (amit imagemagick-kal gyárthatok) csinálna ikon fájlt) szintén újra akarja mintavételezni a 32 bites képeket kisebb bitmélységűre.

Ubutnu edgy-n dolgozok, az ezen csomagban lévő imagemagick verzióval:

$ convert -version
Version: ImageMagick 6.2.4 02/15/07 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2005 ImageMagick Studio LLC

Tud valaki olyan megoldást, amivel szkriptelni lehet az ikonok "gyártási folyamatát"?

Hozzászólások

Nem egyszerűbb gimppel (vagy imagemagiccal :)) .ico-ba menteni?

Amikor az UHU CD-re, illetve honlapunkra (favicon.ico) csináltuk az .ico fájlt, először mi is a png2ico progival próbálkoztunk, de aztán az icoutils bizonyult a nyerőnek.

Köszönöm a tippet!
Az icoutils tényleg jónak tűnik. Szépen megcsinálja, amit kell.
Ez a program png-ket felhasználva készít ico fájlt. Png-t pedig már tetszőlegesen tudunk írni-olvasni egyszerűen... Csak egy apró probléma maradt. Kellene tudom 8 bites indexelt png-t előállítani.
Ezt GIMP-pel lehet így: fájl megnyit, menu: image->mode->indexed Ok, fájl elment. Ezzel a fájl indexeltté válik. Így már kézzel össze tudok rakni egy ikont (ez már eredmény ennyi szarakodás után...), de automatikusan még mindig nem megy.

Azonban az imagemagick convert a változatosság kedvéért nem hajlandó indexelt png-t létrehozni.

A következő dolgokat próbáltam:
1. -format PNG8 (doksi szerint 8 bites indexelt, de RGBA-t csinál)
2. először 8 bites indexelt tiff-é alakítás: convert icon.png -colors 256 icon.tif - ezzel valóban 8 bites indexelt lesz
convert icon.tif icon-indexed.png - valamitől visszaalakul RGBA-vá

A pngrewrite program elvileg palettássá alakítaná a png fájlt, azonban csak akkor hajlandó működni, ha a forrás képen összesen maximum 256 szín van. A convert kimenete ennek soha nem felel meg (16x16-nál nagyobb kép esetén kellően színes képre :-) ). Még akkor sem, ha egy indexelt, 256 színű tif-et alakítok vissza png-re. Hol keletkeznek új színek? +antialias és +dither opciókat beállítottam.

Nem ertem, nekem tokeletesen mukodi a convert, talan mert az alabbi opciokkal probalkoztam?

convert -colors 256 -type Palette alma.png alma1.png

Sot, meg indexelt bmp-t is tudok csinalni :-)

convert -colors 16 -type Palette alma.png alma1.bmp

Zsiraf

p.s.: ja, a -depth az egy kicsit mast jelent, az 8 ill. 16 lehet, es a szinenkenti bitmelyseget jelenti...

Így mindjárt más. Sajnos a convert doksiból ezek a dolgok tök nem voltak világosak nekem, és neten arra keresve, hogy convert png indexed nem találtam meg a fenti kulcsszavakat...

Mondjuk valamiért nekem még így sem működik, de ennek lehet, hogy simán annyi az oka, hogy már hulla fáradt vagyok, és kissé ideges az egész képkonvertálgatástól.
Így néz most ki a parancs:
convert icon.png -colors 256 -type Palette -resize 48x48 icon-indexed.png

A generált kép típusa a GIMP szerint nem indexed, hanem rgba. Mára félreteszem a kérdést (meg magamat :-) ).

Mindenkinek köszönöm a segítséget!

Megvan, mi a parám. Kipróbáltam kipihenten újra az egészet, és rájöttem, hogy az átlátszó képekkel van csak baj. Ezeket nem hajlandó 8 bites indexeltté alakítani, pedig elvileg lehet úgy, hogy egy színre rámondod, hogy az az átlátszó.
(eszerint csináltam átlátszó png-t eredetileg nem áltálszóból:
http://www.fabiovisentin.com/tutorial/GIMP_transparent_image/gimp_how_t… )

Tehát átlátszó png-t kellene 8 bitessé alakítani.
Így feladva a kérdést megoldási javaslatok?