Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с водяным знаком, с PNG 
:(
    Опции темы
Rusman
Дата 18.10.2010, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.5.2006
Где: Пермь

Репутация: нет
Всего: нет



Здравствуйте!
Налаживаю PNG водяной знак на картинку логотипа с прозрачным фоном. В итого вставляется прямогульник залитый в цвет самого логотипа.
Если делаю с GIF то норм все.

Вот код:
Код

  $image_src = $_GET['img'];
  $watermark_src = 'water.png';
  $opacity = 100;
  $padding = 20;
  
  $image = imagecreatefromjpeg($image_src);
  $watermark = imagecreatefrompng($watermark_src);
  
  list($image_width, $image_height) = getimagesize($image_src);
  list($watermark_width, $watermark_height) = getimagesize($watermark_src);
  
  $final_x = $image_width - $watermark_width - $padding;
  $final_y = $image_height - $watermark_height - $padding;

  imagecopymerge($image, $watermark, $final_x, $final_y, 0, 0, $watermark_width, $watermark_height, $opacity);
  
  header("Content-type: image/jpeg");
  imagejpeg($image, null, 100);
  imagedestroy($image);
  imagedestroy($watermark);
        


В чем может быть проблема?
Заранее всем спасибо!

Это сообщение отредактировал(а) Rusman - 18.10.2010, 17:33
PM MAIL ICQ Skype   Вверх
triclosan
Дата 18.10.2010, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: нет
Всего: 12



Цитата(Rusman @  18.10.2010,  17:33 Найти цитируемый пост)
Налаживаю PNG водяной знак

правильно - "накладываю"
PM MAIL   Вверх
skyboy
Дата 18.10.2010, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



думаю, тебе не хватает imagealphablending и imagesavealpha 
PM MAIL   Вверх
Rusman
Дата 18.10.2010, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.5.2006
Где: Пермь

Репутация: нет
Всего: нет



skyboy, добавил, но всеравно тоже саме (


Код

imagealphablending($watermark, true);
imagesavealpha($watermark, true);

PM MAIL ICQ Skype   Вверх
skyboy
Дата 18.10.2010, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



сорри, запутал. imagesavealpha, естественно, не нужно, если сохраняется "обычный" jpg без прозрачности.
а  imagealphablending надо и к $image применить.
png не индексированный, true color?
PM MAIL   Вверх
Rusman
Дата 19.10.2010, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.5.2006
Где: Пермь

Репутация: нет
Всего: нет



skyboy,  вот как сделал, но не помогает (: ваще нече не пойму

Код


  $image_src = $_GET['img'];
  $watermark_src = 'water.png';
  $opacity = 100;
  $padding = 20;
  
  $image = imagecreatefromjpeg($image_src);
  $watermark = imagecreatefrompng($watermark_src); 
  imagealphablending($watermark, true);

  list($image_width, $image_height) = getimagesize($image_src);
  list($watermark_width, $watermark_height) = getimagesize($watermark_src);

  $final_x = $image_width - $watermark_width - $padding;
  $final_y = $image_height - $watermark_height - $padding;

  imagecopymerge($image, $watermark, $final_x, $final_y, 0, 0, $watermark_width, $watermark_height, $opacity);
  imagealphablending($image, true);

  header("Content-type: image/jpg");
  imagejpeg($image, null, 100);
  imagedestroy($image);
  imagedestroy($watermark);

PM MAIL ICQ Skype   Вверх
The_Aleksey
Дата 19.10.2010, 16:41 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


<?php
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 10.10.2007
Где: Москва

Репутация: 5
Всего: 6



Я когда-то давно такую функцию написал, и теперь ее юзаю - накладывает пнг лого в правый нижний угол (я ее сократил для расширения *.jpg, для остальных аналогично, только функции чуть-чуть другие)
Код

function addlogo($file_name, $file_name_out)
{
    $raz=substr($file_name, strrpos($file_name,".")+1);
    if(strtoupper($raz)=="JPG")
    {
        $im=imageCreateFromJpeg($file_name);
        $logo=imageCreateFromPNG("logo.png");
        imagealphablending($logo, false);
        imagesavealpha($logo, true);
        $width=imageSX($im);
        $height=imageSY($im);
        $widthl=imageSX($logo);
        $heightl=imageSY($logo);
        $dx=$width*0.6;
        $k=$heightl/$widthl;
        $dy=$dx*$k;
        $prelogo=imageCreateTrueColor($dx, $dy);
        imagealphablending($prelogo, false);
        imagesavealpha($prelogo, true);
        imageCopyResampled($prelogo, $logo, 0, 0, 0, 0, $dx, $dy, $widthl, $heightl);
        $out=imageCreateTrueColor($width, $height);
        imageCopyResampled($out, $im, 0, 0, 0, 0, $width, $height, $width, $height);
        imageCopyResampled($out, $prelogo, $width-$dx, $height-$dy, 0, 0, $dx, $dy, $dx, $dy);
        @imageJpeg($out, $file_name_out);
    }    
}

PM MAIL   Вверх
Rusman
Дата 19.10.2010, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 4.5.2006
Где: Пермь

Репутация: нет
Всего: нет



The_Aleksey, 
Спасибо!!! Помогло ))
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.