Мы используем 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
5 лет
хостинг: есть
домен: есть
Некорректное отображение водяного знака
При переезде на этот хостинг обнаружилась проблема с наложением водяного знака в 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);

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

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

$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
5 лет
хостинг: есть
домен: есть
Нет, ничего не помогает. Спасибо всем.
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

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

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