Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

Хостинг. Некорректное отображение водяного знака

Форумы Хостинг Некорректное отображение водяного знака
le_grom
26.04.2013
хостинг: есть
домен: есть
Некорректное отображение водяного знака
При переезде на этот хостинг обнаружилась проблема с наложением водяного знака в cms Simpla. Водяной знак накладывается в негативе. На локалхосте и на свободном домене на другом хостинге проблемы нет. Файлы движка и водяного знака идентичны.
Сайт http://worldsecurity.com.ua - любое увеличенное изображение. В идеале должна быть надпись темного цвета на прозрачном фоне.

Водяной знак формируется следующим кодом:
// Watermark
if(!empty($watermark) && is_readable($watermark))
{
$overlay = imagecreatefrompng($watermark);

// Get the size of overlay
$owidth = imagesx($overlay);
$oheight = imagesy($overlay);

$watermark_x = min(($dst_w-$owidth)*$watermark_offet_x/100, $dst_w);
$watermark_y = min(($dst_h-$oheight)*$watermark_offet_y/100, $dst_h);

imagecopy($dst_img, $overlay, $watermark_x, $watermark_y, 0, 0, $owidth, $oheight);

Что может быть причиной? Выключены какие-то фишки на хостинге? Неверные права доступа? Что еще? Уже мозги плавятся...

Спасибо.
Андрей
26.04.2013
хостинг: есть
домен: есть
Попробуйте удалить с раздела хостинг/мои сайты/статические файлы расширение картинок, которые используются в скрипте
le_grom
27.04.2013
хостинг: есть
домен: есть
Спасибо. Не помогло.
Евгений В.
27.04.2013
хостинг: есть
домен: нет
На данный момент, как видно на скриншоте, водяной знак накладывается:
http://awesomescreenshot.com/01917p2m44
le_grom
28.04.2013
хостинг: есть
домен: есть
Евгений, Вы невнимательно читали. Водяной знак накладывается в НЕГАТИВЕ. Должен быть темный текст на прозрачном фоне (такова картинка водяного знака, сделанная в фотошопе, расширение png, прозрачность 100%), на картинке - расплывчатый светлый текст на темном фоне.
ZimbalisT
29.04.2013
хостинг: есть
домен: есть
А можно посмотреть, как она на другом хостинге отображается? Версии РНР на хостингах одинаковы?
le_grom
29.04.2013
хостинг: есть
домен: есть
Вот 2 изображения.
Ссылка устарела.
Первое - на сайте, неправильное. Здешний хостинг, версия php 5.3.24
Второе - локалхост, так должно быть. Установлен Дэнвер, php 5.2.12
На Хостлайфе я пробовал, там тоже нормально и версия php 5.2.17
toxi
29.04.2013
хостинг: есть
домен: есть
У меня водяной знак накладывается так:
Файл .htaccess в каталоге с картинками:
DirectoryIndex index.php

<FilesMatch "\.(gif|jpg|png)$">
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ /watermark/_watermark.php [T=application/x-httpd-php,L,QSA]
</FilesMatch>

Файл: _watermark.php
<?

waterMark($_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'], "watermark.png", "bottom=5,right=5");

function waterMark($original, $watermark, $placement = 'bottom=5,right=5', $destination = null) {
$original = urldecode($original);
$info_o = @getImageSize($original);
if (!$info_o)
return false;
$info_w = @getImageSize($watermark);
if (!$info_w)
return false;

list ($vertical, $horizontal) = split(',', $placement,2);
list($vertical, $sy) = split('=', trim($vertical),2);
list($horizontal, $sx) = split('=', trim($horizontal),2);

switch (trim($vertical)) {
case 'bottom':
$y = $info_o[1] - $info_w[1] - (int)$sy;
break;
case 'middle':
$y = ceil($info_o[1]/2) - ceil($info_w[1]/2) + (int)$sy;
break;
default:
$y = (int)$sy;
break;
}

switch (trim($horizontal)) {
case 'right':
$x = $info_o[0] - $info_w[0] - (int)$sx;
break;
case 'center':
$x = ceil($info_o[0]/2) - ceil($info_w[0]/2) + (int)$sx;
break;
default:
$x = (int)$sx;
break;
}

header("Content-Type: ".$info_o['mime']);

$original = @imageCreateFromString(file_get_contents($original));
$watermark = @imageCreateFromString(file_get_contents($watermark));
$out = imageCreateTrueColor($info_o[0],$info_o[1]);

imageCopy($out, $original, 0, 0, 0, 0, $info_o[0], $info_o[1]);
if( ($info_o[0] > 250) && ($info_o[1] > 250) )
{
imageCopy($out, $watermark, $x, $y, 0, 0, $info_w[0], $info_w[1]);
}

switch ($info_o[2]) {
case 1:
imageGIF($out);
break;
case 2:
imageJPEG($out);
break;
case 3:
imagePNG($out);
break;
}

imageDestroy($out);
imageDestroy($original);
imageDestroy($watermark);

return true;
}

?>

И файл "водяного знака": watermark.png
ZimbalisT
29.04.2013
хостинг: есть
домен: есть
le_grom, так попробуйте здесь понизить версию РНР
sonicua
30.04.2013
хостинг: нет
домен: нет
Проверил такой вот код у себя на сайте:

$overlay = imagecreatefrompng("empty.png");
$dst_img = imagecreatefromjpeg("eskiz.jpg");

// Get the size of overlay
$owidth = imagesx($overlay);
$oheight = imagesy($overlay);

imagecopy($dst_img, $overlay, 10, 10, 0, 0, $owidth, $oheight);
header('Content-Type: image/jpeg');
imagejpeg($dst_img);

Всё нормально работает и на 5.2 и на 5.3 версиях php
Посмотреть можно здесь
http://smp.co.ua/watermark....
http://smp.co.ua/empty.png
http://smp.co.ua/eskiz.jpg
le_grom
01.05.2013
хостинг: есть
домен: есть
Нет, ничего не помогает. Спасибо всем.
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города