Gd работает не со всеми изображениями (whatermark)

Тема в разделе "PHP", создана пользователем parks, 22 дек 2011.

Модераторы: latteo
  1. parks

    parks Нарушитель

    Регистр.:
    18 сен 2008
    Сообщения:
    424
    Симпатии:
    60
    Непойму в чём проблема, с GD ранее не работал , прошу помощи.
    PHP:
     // Загрузка штампа и фото, для которого применяется водяной знак (называется штамп или печать)
    $im imagecreatefromjpeg('test.png');
    $stamp imagecreatefrompng('watermark.png');
    // Установка полей для штампа и получение высоты/ширины штампа
    $sx imagesx($stamp);
    $sy imagesy($stamp);
    // Слияние штампа с фотографией. Прозрачность 50%
    imagecopymerge($im$stampimagesx($im) - $sximagesy($im) - $sy 00imagesx($stamp), imagesy($stamp), 50);
    // Сохранение фотографии в файл и освобождение памяти
    $tmp_name 'photo_stamp.png';
    imagepng($im$tmp_name);
    imagedestroy($im);
    Вот такой вот скрипт скрипт с одним файлом png работает а с другим нет(виснет и "Соединение закрыто удалённым сервером"(denwer)), так же такая ситуация возникает с некоторыми jpg.
    Файлы прелагаю .Неработает с (test.png)
     

    Вложения:

    • png.zip
      Размер файла:
      368,5 КБ
      Просмотров:
      3
    metsys нравится это.
  2. xRay_TFB

    xRay_TFB Постоялец

    Регистр.:
    17 мар 2010
    Сообщения:
    60
    Симпатии:
    35
    файл preview.png - это jpeg, а test.png - PNG.

    Следовательно, вот эта конструкция неверна:
    $im = imagecreatefromjpeg('test.png');$stamp = imagecreatefrompng('watermark.png');
     
    parks нравится это.
  3. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    иногда расширение файла может не всегда совпадать с типом картинки, поэтому можно использовать функцию getimagesize() которая возвращает размер, тип картинки и т.д.
     
    parks нравится это.