Форум русской поддержки Joomla!® CMS
03.12.2016, 04:21:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Скрипт Watermark запретить водяной знак на фото меньше определённого размера

 (Прочитано 617 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Se
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 169


« : 03.12.2014, 20:31:23 »

Как указать, что бы на маленьких картинках, не прописывался водяной знак.
Или как вообще запретить водяной знак на фото меньше определённого размера

Код:
<?php
// Скрипт скачен с wdda.pro

// Путь до файла с оригинальным изображением
$path = $_SERVER['DOCUMENT_ROOT'].$_SERVER['REQUEST_URI'];
$nameImage = end(explode('/', $_SERVER['REQUEST_URI'])); // Имя изображения
$nameImageId = md5($path). $nameImage;

// Проверяем дату для рефреша кеша
$dateImage = filemtime($path);
$dateImageCache = @filemtime($_SERVER['DOCUMENT_ROOT'] . "/watermark/cache/" . $nameImageId);

//Устанавливаем качество (вес) картинки на выходе
$quality = 100;

if(file_exists('cache/' . $nameImageId) && $dateImage < $dateImageCache)
{
$image = imagecreatefromstring(file_get_contents('cache/' . $nameImageId));
header('Content-type: image/jpeg');
imagejpeg($image, NULL, $quality);
exit();
}
else // Если же нет такой картинки в кэше
{
// Загружаем оригинальное изображение
$image = imagecreatefromstring(file_get_contents($path));

// Получаем ширину и высоту оригинально изображения
$w = imagesx($image);
$h = imagesy($image);

// Загружаем изображение с водяным знаком
$watermark = imagecreatefrompng('watermark.png');

//Вместо 235 можете поставить свое значение, это размер для маленьких фото для них будет испольщоваться маленький ватермарк
if($w == 235)
{
$watermark = imagecreatefrompng('watermark_m.png');
}

// Получаем ширину и высоту водяного знака
$ww = imagesx($watermark);
$wh = imagesy($watermark);

// Соединяем оригинальное изображение и водяной знак.(водяной знак будет расположен в нижнем правом углу), можете попробовать его двигать меняя 10 и 5.
imagecopy($image, $watermark, $w-$ww-10, $h-$wh-5, 0, 0, $ww, $wh);

imagealphablending($image, false);
imagesavealpha($image, true); // Устанавливаем прозрачность для png файла

//Изменив значение 100, вы можете снизить качество получаемого фото
imagejpeg($image, 'cache/' . $nameImageId, $quality);
header('Content-type: image/jpeg');
imagejpeg($image, NULL, $quality);
exit();
}
?>

 
Записан
Se
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 169


« Ответ #1 : 06.12.2014, 14:49:31 »

В коде есть такое место, может всё же кто-нибудь подскажет как сделать!
//Вместо 235 можете поставить свое значение, это размер для маленьких фото для них будет испольщоваться маленький ватермарк
   if($w == 235)
   {
      $watermark = imagecreatefrompng('watermark_m.png');
   }
Записан
still2013
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3



« Ответ #2 : 18.11.2015, 17:50:47 »

В коде есть такое место, может всё же кто-нибудь подскажет как сделать!
//Вместо 235 можете поставить свое значение, это размер для маленьких фото для них будет испольщоваться маленький ватермарк
   if($w == 235)
   {
      $watermark = imagecreatefrompng('watermark_m.png');
   }
Установи значения
$w <= 235
$watermark = 0;
« Последнее редактирование: 18.11.2015, 18:34:48 от still2013 » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet