Проблема: watermark перекрывает картинку

Тема в разделе "PHP", создана пользователем muzshura, 28 май 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. muzshura

    muzshura Постоялец

    Регистр.:
    27 фев 2008
    Сообщения:
    74
    Симпатии:
    3
    Как сделать чтобы watermark накладывался прозрачно?
     
  2. noiz

    noiz Создатель

    Регистр.:
    9 апр 2009
    Сообщения:
    16
    Симпатии:
    1
    Хотелось бы для начала увидеть проблемный код.
    А вообще функция imagecolorallocatealpha() помогает.
     
  3. wwwitalya

    wwwitalya Создатель

    Регистр.:
    4 май 2009
    Сообщения:
    45
    Симпатии:
    18
    WaterMarks
     

    Вложения:

    • WaterMarks.zip
      Размер файла:
      47,4 КБ
      Просмотров:
      11
  4. krivov

    krivov Постоялец

    Регистр.:
    24 дек 2007
    Сообщения:
    142
    Симпатии:
    19
    вот:

    //сам класс:
    class watermark2
    {
    function create_watermark( $main_img_obj, $watermark_img_obj, $alpha_level = 100 )
    {
    $watermark_width = imagesx($watermark_img_obj);
    $watermark_height = imagesy($watermark_img_obj);

    $dest_x = imagesx($main_img_obj) - $watermark_width - 5;
    $dest_y = imagesy($main_img_obj) - $watermark_height - 5;
    imagecopymerge($main_img_obj, $watermark_img_obj, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $alpha_level);

    return $main_img_obj;
    }

    //тут:
    //$main_img_obj - идентификатор изображения, на которое добавляется надпись
    //$watermark_img_obj - идентификатор изображения прозрачного png8
    //$alpha_level - прозрачность (0 - прозрачное, 100 - полностью непрозрачное)

    //вызываем
    $watermark = new watermark2();
    $img = imagecreatefromjpeg(”image.jpg”);
    $water = imagecreatefrompng(”watermark8.png”);
    $im=$watermark->create_watermark($img,$water,10);
    imagejpeg($im,”result.jpg”);
     
  5. noiz

    noiz Создатель

    Регистр.:
    9 апр 2009
    Сообщения:
    16
    Симпатии:
    1
    Хороший код, у меня заработал с прозрачностью :ay:

    Видимо, проблема в поддержке PNG твоей библиотекой GD. Попробуй на других машинах, или GIF использовать для watermark.
     
  6. serjinio

    serjinio

    Регистр.:
    10 май 2007
    Сообщения:
    439
    Симпатии:
    49
    Поосторожней с PNG в ИЕ 6 прозрачность этого формата не поддерживается будет серый фон ..есть хаки которые это устраняют но ИМХО это костыли поэтому используйте GIF формат...
     
  7. noiz

    noiz Создатель

    Регистр.:
    9 апр 2009
    Сообщения:
    16
    Симпатии:
    1
    Браузер тут не при чем, выходная картинка всё равно JPEG
     
  8. Jayrun

    Jayrun Создатель

    Регистр.:
    8 май 2007
    Сообщения:
    18
    Симпатии:
    9
    ну ослик уже отходит в небытие благодаря активной легализации офисного софта и одновременно установки апдейтов на лицензионную винду и браузеры =) так что на него можно уже не обращать внимание. а в крайнем случай собрать скрипт который будет уведомлять юзера о устаревшем браузере и перенаправлять его на сайт с новой версией.
     
Статус темы:
Закрыта.