Vlákno názorů k článku Rastrový grafický formát ICO od Jakub Vrána - U ikony JavaCup.ico je uvedena velikost 1640 bytů....

  • Článek je starý, nové názory již nelze přidávat.
  • 19. 2. 2007 15:43

    Jakub Vrána
    U ikony JavaCup.ico je uvedena velikost 1640 bytů. Nějak se k ní nemohu dopočítat:

    40 (hlavička) + 16*4 (paleta) + 48*48/2 (XOR-bitmapa) + 48*48/8 (AND-bitmapa) = 1544 (96 bytů chybí)

    Možná to bude souviset s mým problémem. Na http://php.vrana.cz/favicon.ico mám ikonu (vygenerovanou tuším pomocí IrfanView): width=16, height=16, bitcount=24, length=872.

    40 (hlavička) + 16*16*3 (XOR-bitmapa) + 16*16/8 (AND-bitmapa) = 840 (32 bytů chybí)

    Bližším prozkoumáním jsem zjistil, že chybějících 32 bytů je umístěno v AND-bitmapě - každý nový řádek začíná na bytu dělitelném čtyřmi. Pokud bychom toto pravidlo vztáhli na JavaCup.ico, tak součet rázem taky vychází, takže předpokládám, že to bude ono.

    Škoda, že o tom v článku není žádná zmínka, v odkazovaných dokumentech jsem našel také pouze zavádějící informace (jako že velikost AND-bitmapy = šířka*výška/8).
  • 19. 2. 2007 16:43

    Pavel Tišnovský
    Zlatý podporovatel
    Moje opomenutí: sice jsem v článku na jednom místě psal, že se jedná o vložené windowsovské bitmapy (uložené v kontejneru s koncovkou .BMP), ale už jsem nedal odkaz na předchozí části tohoto seriálu. Formát .ICO je vlastně taky kontejner na bitmapy

    Máte naprostou pravdu - všechny řádky v jakékoli win. bitmapě (v tomto případě pojmenovaných AND a XOR) jsou zarovnány na celistvé čtyři byty. U XOR-bitmap se na to vlastně skoro nikdy "nepřijde", protože je jejich velikost mocninou dvou a i u šestnáctibarevných bitmap je výsledek dělitelný čtyřmi, ale u AND-bitmap tento problém může nastat.