Форум → Программирование → PHP для идиотов → Наложение логотипа на фотки
Наложение логотипа на фотки
-
Доброго времени суток. Попробую обратиться за помощью..
Хочу сделать "клеймение" загружаемых на сайт фоток. Есть вот такая функция, делающая собственно накладку (авторство - не мое).
Код боевой, то есть успешно работает на одном из живых проектов.
[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-функциями в часности - с гулькин нос. Так что наперед прошу простить за возможное ламерство:)
Заранее спасибо.
З.Ы. А как бы подсветку синтаксиса здесь добавить?… код нечитабильный вообще получился..( -
25 июня 2009 г. 13:45, спустя 2 минуты 10 секунд
Chiffa, ахуенно оформил топик! плюс тебе! так надо просить совета, а не как 95% приходящихСпустя 76 сек.советую попробовать одно - как разница, эдво спит и склейка не пашет((Сапожник без сапог -
25 июня 2009 г. 13:47, спустя 1 минуту 59 секунд
Chiffa, ахуенно оформил топик!
наверное всетакиChiffa, ахуенно оформила топик!
=) -
25 июня 2009 г. 13:50, спустя 3 минуты 28 секунд
NRG, ну зачем же сразу меня палить?…)
phpdude, искренне надеюсь что это не стеб… как по мне то вопросик корявый. а код вообще нечитабильный получился( как бы подсветку добавить? -
-
25 июня 2009 г. 13:53, спустя 1 минуту 10 секунд
НГГ, меня иак еще никто не называл)))
а поповоду подсветки и прочей хуйни, то это ктото блять форум ламает…. -
25 июня 2009 г. 13:56, спустя 2 минуты 41 секунду
уху .. суки( )))
НГГ, меня иак еще никто не называл)))
а поповоду подсветки и прочей хуйни, то это ктото блять форум ламает….Сапожник без сапог -
25 июня 2009 г. 13:57, спустя 1 минуту 21 секунду
ура, Чифинова зарегалась!
и по традиции, плюсы деффкам в кармуСпустя 23 сек.phpdude, что за хуйня творицо?
тебе ж все дали? )все умрут, а я изумруд -
25 июня 2009 г. 13:59, спустя 1 минуту 51 секунду
CTAPbIu_MABP, NRG, и все остальные господа, спасибо за столь теплый прием))
CTAPbIu_MABP, Я НЕ "чифинова"!!!!Спустя 87 сек.пардон за NGG… очепяталась) -
25 июня 2009 г. 14:01, спустя 1 минуту 53 секунды
может давайте всетаки попробуем решить проблему которую она описала ? =)))
CTAPbIu_MABP, NRG, и все остальные господа, спасибо за столь теплый прием))
CTAPbIu_MABP, Я НЕ "чифинова"!!!!
или просто будет плюсовать ей карму ? =))) -
25 июня 2009 г. 14:02, спустя 1 минуту 20 секунд
phpdude, дуд почини подсветку биля! И склейку! А то невозможно же так :(https://smappi.org/ - платформа по созданию API на все случаи жизни -
25 июня 2009 г. 14:03, спустя 1 минуту 2 секунды
я за это
или просто будет плюсовать ей карму ? =)))все умрут, а я изумруд -
25 июня 2009 г. 14:05, спустя 1 минуту 42 секунды
Chiffa, как я понимаю тебе надо просто вотермарку сделать ?
если да, то я могу дать тебе готовый класс… -
25 июня 2009 г. 14:05, спустя 31 секунду
я за это
или просто будет плюсовать ей карму ? =)))
а я еще и за решение проблеммы) так, походу…Спустя 106 сек.
Chiffa, как я понимаю тебе надо просто вотермарку сделать ?
если да, то я могу дать тебе готовый класс…
спасибо, но хотелось бы разобраться с тем что есть…
мне тут уже подсказали вариант причины глюка. разница между png8 и png32. пока читаю об этом. проверить все рано не могу
не png32, а png24 всмысле…
Пожалуйста, авторизуйтесь, чтобы написать комментарий!