Блог Конфуция
Белый фон 08.07.2009

Нужна была консольная утилита добавляющая в png-файл поле с белым цветом фона по умолчанию (bKGD chunk). Было это нужно, чтобы при распечатке коктейлей в IE6 не было противного серого фона (AlphaImageLoader при печати не пашет). Изобретать велосипед не хотелось, поэтому нашел статью, где чувак подробно рассказывает, как добавить подобную функциональность в программу на C#. Самое полезное там — это объяснение того, что чанк с цветом фона можно добавить прямо перед первым чанком с данными. Но у него все на микрософтовском сишарпе, а мы-то сидим на маках с линуксами. Погуглив еще минутку, нашел и остальное. Все, что связано с PNG, как ни странно, вполне доступно изложено на W3C: и про фон, и про формат вообще.

Поколдовав немного, получил очень прямолинейную программу, выполняющую только одно действие: задание белого, и только белого фона. Выложил на гитхаб, так как планирую добавить возможность хотя бы задавать цвет :)

UPD (02.12.2009): если обработать один файл дважды, то туда попадут два чанка с бекграундом, от этого картинка сломается в IE. Все дело в этих байтах: 00000006624B474400FF00FF00FFA0BDA793, сотрите их и все будет норм :) А еще утилитка composite (из ImageMagick) добавляет свой чанк с бекграундом — будте осторожны, не сломайте картинки (как сломал я)!

Теги:
  • сервер
  • C
  • composite
  • IE
  • imagemagick
  • png
Очень жду ваших комментариев на почту или на гитхаб.