Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Наложение водяного знака
Форумы портала PHP.SU » » Графика в PHP » Наложение водяного знака

Страниц (1): [1]
 

1. ivanfz - 30 Июня, 2011 - 13:31:38 - перейти к сообщению
Добрый день, у меня такая иногда возникает проблема с изображениями при наложении водяного знака через imagecopy. Конечное изображение рвется.
(Добавление)
вот скрипт:
$foto_hw = getimagesize($_SERVER["DOCUMENT_ROOT"].$arResult["PROPERTIES"]['STATIC_MORE_PHOTO']['VALUE'][$ik]['SRCB']); // путь к фото
$znak_hw = getimagesize($_SERVER['DOCUMENT_ROOT']."/1cimport/oldi_logo.png"); // путь к знаку

$znak = imagecreatefrompng($_SERVER['DOCUMENT_ROOT']."/1cimport/oldi_logo.png");

if($foto_hw['mime']== 'image/jpeg'){
$foto = imagecreatefromjpeg($_SERVER["DOCUMENT_ROOT"].$arResult["PROPERTIES"]['STATIC_MORE_PHOTO']['VALUE'][$ik]['SRCB']);
}
elseif($foto_hw['mime']== 'image/gif')
{
$foto = imagecreatefromgif($_SERVER["DOCUMENT_ROOT"].$arResult["PROPERTIES"]['STATIC_MORE_PHOTO']['VALUE'][$ik]['SRCB']);
}
elseif($foto_hw['mime']== 'image/png')
{
$foto = imagecreatefrompng($_SERVER["DOCUMENT_ROOT"].$arResult["PROPERTIES"]['STATIC_MORE_PHOTO']['VALUE'][$ik]['SRCB']);
}


imagecopy ($foto,$znak,$foto_hw[0] - $znak_hw[0],$foto_hw[1] - $znak_hw[1],0,0, $znak_hw[0], $znak_hw[1]);

$foto_hw=pathinfo($_SERVER["DOCUMENT_ROOT"].$arResult["PROPERTIES"]['STATIC_MORE_PHOTO']['VALUE'][$ik]['SRCB']);


if(($foto_hw['extension']=='jpeg') || ($foto_hw['extension']=='jpg')||($foto_hw['extension']=='JPEG') || ($foto_hw['extension']=='JPG'))
{
imagejpeg($foto, $_SERVER["DOCUMENT_ROOT"].$arResult["PROPERTIES"]['STATIC_MORE_PHOTO']['VALUE'][$ik]['SRCB'], 100);
}
elseif(($foto_hw['extension']=='gif')||($foto_hw['extension']=='GIF'))
{
imagegif($foto, $_SERVER["DOCUMENT_ROOT"].$arResult["PROPERTIES"]['STATIC_MORE_PHOTO']['VALUE'][$ik]['SRCB'], 100);
}
elseif(($foto_hw['extension']=='png')||($foto_hw['extension']=='PNG'))
{
imagepng($foto, $_SERVER["DOCUMENT_ROOT"].$arResult["PROPERTIES"]['STATIC_MORE_PHOTO']['VALUE'][$ik]['SRCB'], 100);
}

imagedestroy ($znak);
imagedestroy ($foto);
}
(Добавление)
Скрипт запускается при первом просмотре страницы,в последующие разы он игнорируется. Когда я замечаю такие испорченные изображения, и заново активирую скрипт на исходные изображения он тоже хаотически накладывает, может с первого раза хорошо наложить, а может опять испортить изображения.
Подскажите пожалуйста, если кто сталкивался
2. GYS_Yu - 30 Июня, 2011 - 14:35:31 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function create_znak($file){
  2.                        
  3.                         $way = "путь к картинке, на которую наносим знак/".$file;
  4.                                
  5.                         $znak_hw = getimagesize("путь к знаку/znak.png");
  6.                         $foto_hw = getimagesize($way);
  7.                                
  8.                         $znak = imagecreatefrompng  ("путь к знаку/znak.png");
  9.                         $foto = imagecreatefromjpeg ($way);
  10.                                
  11.                         imagecopy ($foto, $znak, $foto_hw[0] - $znak_hw[0], $foto_hw[1] - $znak_hw[1], 0, 0, $znak_hw[0], $znak_hw[1]);
  12.                                
  13.                         imagejpeg ($foto, $way, "100");
  14.                                
  15.                         imagedestroy ($znak);
  16.                         imagedestroy ($foto);
  17.                 }
3. ivanfz - 30 Июня, 2011 - 14:57:27 - перейти к сообщению
Из этого кода я свой и делал
4. GYS_Yu - 30 Июня, 2011 - 15:04:06 - перейти к сообщению
чем исходный-то не угодил?
5. ivanfz - 30 Июня, 2011 - 15:10:35 - перейти к сообщению
исходная картинка может быть не только jpeg-расширением, вот и модифицировал
6. ivanfz - 01 Июля, 2011 - 12:33:57 - перейти к сообщению
Есть предположение, может сервер в какой-то момент тормозит?
7. ALEN - 02 Июля, 2011 - 11:34:05 - перейти к сообщению
ivanfz
http://forum.php.su/topic.php?fo...35&topic=736 вот готовый класс, посмотри в него

 

Powered by ExBB FM 1.0 RC1