Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Масштабирование Gif-файла

2.0K
11 декабря 2007 года
calgon
90 / / 27.06.2006
Люди кто знает как можно масштабировать gif-файл без потери прозрачности?

Есть код :
Код:
<?php
// f - имя файла
// src - исходное изображение
// dest - результирующее изображение
// w\h - ширина\высота изображения
// ratio - коэффициент пропорциональности

$src = imagecreatefromgif($f);
header("Content-type: image/gif");
$w_src = imagesx($src);
$h_src = imagesy($src);

$ratio = $h_src/$h;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
$dest = imagecreatetruecolor($w_dest,$h_dest);
imagecopyresized($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
imagegif($dest);
imagedestroy($dest);
imagedestroy($src);
?>


Но он выдает масштабированное изображение с черным фоном, т.е. там где должна быть прозрачность - черный цвет.

Кто подскажет как сохранить прозрачность?
239
11 декабря 2007 года
Dolonet
1.7K / / 20.05.2000
Попробуйте использовать функцию imagecolortransparent.
Кстати, полное описание и много интересных примеров можно найти в документации и примечаниям к каждой функции внизу страницы:
http://ru2.php.net/manual/ru/ref.image.php
2.0K
11 декабря 2007 года
calgon
90 / / 27.06.2006
Проблему решил таким образом. До вызова функции imagecopyresized() пишем :
 
Код:
$colorTransparent = imagecolortransparent($src);
if( $colorTransparent >= 0 && $colorTransparent < imagecolorstotal( $src ) )
{
    imagepalettecopy($src, $dest);
    imagefill($dest, 0, 0, $colorTransparent);
    imagecolortransparent($dest, $colorTransparent);
    imagetruecolortopalette($dest, true, 256);
}


И все пашет. Проверялось на GD 2.0.28 (PHP4) и GD 2.0.34 (PHP5).
239
11 декабря 2007 года
Dolonet
1.7K / / 20.05.2000
Вот и замечательно :)

Офф: Привет Запорожью! У меня аутсорсер дизайнер в ваших краях живёт, давно с ним работаем.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог