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

Ваш аккаунт

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

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

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

GDLib + прозрачный гиф

254
25 мая 2006 года
Cker
341 / / 20.08.2000
проблема заключается в том, что при уменьшении прозрачного гифа - его прозрачность теряется. Можно как-то этого избежать?
5.3K
25 мая 2006 года
r000n_m
177 / / 26.02.2006
В прозрачных гифах прозрачным определяется один из основных цветов. При масштабировании видать, это теряется. Значит нужно восстановить этот "прозрачный" цвет
254
25 мая 2006 года
Cker
341 / / 20.08.2000
Цитата:
Originally posted by r000n_m
В прозрачных гифах прозрачным определяется один из основных цветов. При масштабировании видать, это теряется. Значит нужно восстановить этот "прозрачный" цвет



а как это сделать?. и непонятно, что значит "один из основных цветов". Ведь я когда создаю этот гиф в фотошопе - я выбираю "None" для цвета

5.3K
25 мая 2006 года
r000n_m
177 / / 26.02.2006
Путем сохранения с прозрачностью и без нее с последующим анализом полученного в hex виде обнаружил, что байт по смещению 310h содержит значение 0/1 - нет/есть прозрачность, а байт по смещению 313h - значение прозрачности. Пробовал на трех файлах
254
26 мая 2006 года
Cker
341 / / 20.08.2000
Цитата:
Originally posted by r000n_m
Путем сохранения с прозрачностью и без нее с последующим анализом полученного в hex виде обнаружил, что байт по смещению 310h содержит значение 0/1 - нет/есть прозрачность, а байт по смещению 313h - значение прозрачности. Пробовал на трех файлах



а как все это дело проделать программно на GD Lib?

5.3K
26 мая 2006 года
r000n_m
177 / / 26.02.2006
Хотя зачем огород городить?
По новой сделать прозрачной
imagecolortransparent
254
26 мая 2006 года
Cker
341 / / 20.08.2000
Цитата:
Originally posted by r000n_m
Хотя зачем огород городить?
По новой сделать прозрачной
imagecolortransparent



немного непонял

у меня вот такой код:

Код:
$this->get_image_size($watermark, $watermark_w, $watermark_h, $err);
$watermark_image = $this->create_image_from_file($watermark);
    $img=@imagecreatefromgif($source);
        $width=imagesx($img); $height=imagesy($img);
        if ($width>$height) { $n_height=$height*($watermark_w/$width); $n_width=$watermark_w; }
        else { $n_width=$width*($watermark_h/$height); $n_height=$watermark_h; }

        $x=0;$y=0;
        if ($n_width<$watermark_w) $x=round(($watermark_w-$n_width)/2);
        if ($n_height<$watermark_h) $y=round(($watermark_h-$n_height)/2);

        $thumb=imagecreatetruecolor($n_width,$n_height);

        if (!($result=@imagecopyresampled($thumb,$img,0,0,0,0,$n_width,$n_height,$width,$height)))
            $result=imagecopyresized($thumb,$img,0,0,0,0,$n_width,$n_height,$width,$height);
    $source_img = $thumb;
    imageCopyMerge($watermark_image, $source_img, $offset_x, $offset_y, 0, 0, $n_width,$n_height, $pct);

watermark_img - это мой прозрачный ватермарк.
И я немного непойму, куда мне надо вставить imagecolortransparent?
5.3K
27 мая 2006 года
r000n_m
177 / / 26.02.2006
После всех преобразований
254
30 мая 2006 года
Cker
341 / / 20.08.2000
Цитата:
Originally posted by r000n_m
После всех преобразований



неполучается =(
может подскажете, куда мне надо код вставить?

832
01 июня 2006 года
Carpus
390 / / 14.04.2005
Видимо необходимо явно задать прозрачный цвет -

 
Код:
...
    imageCopyMerge($watermark_image, $source_img, $offset_x, $offset_y, 0, 0, $n_width,$n_height, $pct);
$trans_color = imagecolorallocate($source_img, 255, 0, 0);
imagecolortransparent($source_img, $trans_color);


Подробности на http://ru.php.net/imagecolortransparent ;-)
8
04 июня 2006 года
mfender
3.5K / / 15.06.2005
а не проще-ли использовать для "ватермарка" Png-24?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог