ФорумПрограммированиеPHP для идиотов → Наложение логотипа на фотки

Наложение логотипа на фотки

  • Chiffa

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 25 июня 2009 г. 13:43

    Доброго времени суток. Попробую обратиться за помощью..
    Хочу сделать "клеймение" загружаемых на сайт фоток. Есть вот такая функция, делающая собственно накладку (авторство - не мое).
    Код боевой, то есть успешно работает на одном из живых проектов.

    [phр]
    function insertToImageLogo($filename, $pathToLogo='') {
           if(!$pathToLogo) $pathToLogo = ROOT_HTML_PATH."img/logo.png";

           $logoSize = getimagesize($pathToLogo);

           $imgSize = getimagesize($filename);
           $file_info = pathinfo($filename);
           $ext = $file_info["extension"];

           if(function_exists('imagecreatefrompng')) {
               $imgLogo = imagecreatefrompng($pathToLogo);
           }
           if(!$imgLogo) {
    return false;
    }

           if ( ($ext == 'jpg' || $ext == 'jpeg') && function_exists('imagecreatefromjpeg') ) {
               $img = imagecreatefromjpeg($filename);
           }
           elseif ($ext == 'png' && function_exists('imagecreatefrompng')) {
               $img = imagecreatefrompng($filename);
           }
           elseif ($ext == 'gif' && function_exists('imagecreatefromgif')) {
               $img = imagecreatefromgif($filename);
           }
           else {
               return false;
           }

           if (!$img) return false;

           if(function_exists('imagecopy')) {
               $xDst = $imgSize[0]-$logoSize[0]-10;
               $yDst = $imgSize[1]-$logoSize[1]-10;
               imagecopy ($img, $imgLogo, $xDst, $yDst, 0, 0, $logoSize[0], $logoSize[1]);
           }
           else return false;

           if ( ($ext == 'jpg' || $ext == 'jpeg') && function_exists('imagejpeg') ) {
               $img = imagejpeg($img, $filename, 90);
           }
           elseif ($ext == 'png' && function_exists('imagepng')) {
               $img = imagepng($img, $filename);
           }
           elseif ($ext == 'gif' && function_exists('imagegif')) {
               $img = imagegif($img, $filename);
           }
           else {
               return false;
           }
       }
    [/phр]

    В моем случае появился странный глюк: на итоговое изображение накладывается размазанный верхний левый угол нового логотипа. При этом старый логотип штампуется правильно. Оба файла с полупрозрачностями, одинаковой высоты и даже по размеру приблизительно одинаковые, только текст разный… Понимаю, что проблема скорее всего с самим logo.png, но в каком направлении копать допереть не могу.
    Мудохаюсь уже достаточно долго. Метод проб и ошибок выявить закономерность не помог…
    Выложить оба файлика с примерами логотипов (рабочим и глючным) сейчас не могу, нет доступа с работы.
    Возможно кто-нибуть сможет "на глаз" подсказать где именно в коде изображение может так пересираться и что ему может не нравиться?
    Мой опыт работы с графикой вообще и с GD-функциями в часности - с гулькин нос. Так что наперед прошу простить за возможное ламерство:)
    Заранее спасибо.

    З.Ы. А как бы подсветку синтаксиса здесь добавить?… код нечитабильный вообще получился..(
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 13:45, спустя 2 минуты 10 секунд

    Chiffa, ахуенно оформил топик! плюс тебе! так надо просить совета, а не как 95% приходящих
    Спустя 76 сек.
    советую попробовать одно - как разница, эдво спит и склейка не пашет((
    Сапожник без сапог
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 13:47, спустя 1 минуту 59 секунд

    Chiffa, ахуенно оформил топик!

    наверное всетаки
    Chiffa, ахуенно оформила топик!

    =)
  • Chiffa

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 25 июня 2009 г. 13:50, спустя 3 минуты 28 секунд

    NRG, ну зачем же сразу меня палить?…)
    phpdude, искренне надеюсь что это не стеб… как по мне то вопросик корявый. а код вообще нечитабильный получился( как бы подсветку добавить?
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 13:52, спустя 1 минуту 12 секунд

    чифинова зарегалась)))
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 13:53, спустя 1 минуту 10 секунд

    НГГ, меня иак еще никто не называл)))
    а поповоду подсветки и прочей хуйни, то это ктото блять форум ламает….
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 13:56, спустя 2 минуты 41 секунду


    НГГ, меня иак еще никто не называл)))
    а поповоду подсветки и прочей хуйни, то это ктото блять форум ламает….
    уху .. суки( )))
    Сапожник без сапог
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 13:57, спустя 1 минуту 21 секунду

    ура, Чифинова зарегалась!
    и по традиции, плюсы деффкам в карму
    Спустя 23 сек.
    phpdude, что за хуйня творицо?
    тебе ж все дали? )
    все умрут, а я изумруд
  • Chiffa

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 25 июня 2009 г. 13:59, спустя 1 минуту 51 секунду

    CTAPbIu_MABP, NRG, и все остальные господа, спасибо за столь теплый прием))
    CTAPbIu_MABP, Я НЕ "чифинова"!!!!
    Спустя 87 сек.
    пардон за NGG… очепяталась)
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 14:01, спустя 1 минуту 53 секунды


    CTAPbIu_MABP, NRG, и все остальные господа, спасибо за столь теплый прием))
    CTAPbIu_MABP, Я НЕ "чифинова"!!!!

    может давайте всетаки попробуем решить проблему которую она описала ? =)))
    или просто будет плюсовать ей карму ? =)))
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 14:02, спустя 1 минуту 20 секунд

    phpdude, дуд почини подсветку биля! И склейку! А то невозможно же так :(
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 14:03, спустя 1 минуту 2 секунды


    или просто будет плюсовать ей карму ? =)))
    я за это
    все умрут, а я изумруд
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 25 июня 2009 г. 14:05, спустя 1 минуту 42 секунды

    Chiffa, как я понимаю тебе надо просто вотермарку сделать ?
    если да, то я могу дать тебе готовый класс…
  • Chiffa

    Сообщения: 510 Репутация: N Группа: Джедаи

    Spritz 25 июня 2009 г. 14:05, спустя 31 секунду



    или просто будет плюсовать ей карму ? =)))
    я за это

    а я еще и за решение проблеммы) так, походу…
    Спустя 106 сек.

    Chiffa, как я понимаю тебе надо просто вотермарку сделать ?
    если да, то я могу дать тебе готовый класс…

    спасибо, но хотелось бы разобраться с тем что есть…
    мне тут уже подсказали вариант причины глюка. разница между png8 и png32. пока читаю об этом. проверить все рано не могу
    не png32, а png24 всмысле…

Пожалуйста, авторизуйтесь, чтобы написать комментарий!