This Might Be Useful

PHP, GD и прозрачность GIF

При изменении размера GIF изображений в PHP с помощью библиотеки GD, цвет прозрачности заменяется на черный. Это не баг, это жизнь, но исправить это можно :) Для этого надо определить индекс цвета прозрачности у исходного изображения, и вставить его в палитру нового, уменьшенного, изображения. Код который это делает приведен ниже, сразу после него можно выполнять знакомый ImageCopyResampled($dst_image, $src_image, ...)

PHP:
  1. //Begin Transparent Color Resize Correction for Gif and 8bit Png, by Martin Schmidt
  2. $dst_image = imagecreatetruecolor( $width, $height );
  3. $colorcount = imagecolorstotal($src_image);
  4. imagetruecolortopalette($dst_image,true,$colorcount);
  5. imagepalettecopy($dst_image,$src_image);
  6. $transparentcolor = imagecolortransparent($src_image);
  7. imagefill($dst_image,0,0,$transparentcolor);
  8. imagecolortransparent($dst_image,$transparentcolor);
  9. //End Transparent Color Resize Correction

Правда получившаяся картинка будет выглядеть достаточно грубо, поэтому в будущем, надеюсь, попадётся в сети решения для более качественной обработки.

автор кода

· Отключаем нежелательные HTML-элементы с помощью CSS
· Valid XHTML Flash SWF Objects embedding (updated)
· Поддержка прозрачности PNG в IE6

- Коментировать
- Trackback

Leave a Reply