0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 1572 Просмотров
*

Se

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

Код
<?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

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

still2013

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

Как не выводить позицию модуля на моб устройствах, или меньше определенного разм?

Автор SergeySpace

Ответов: 3
Просмотров: 771
Последний ответ 13.12.2019, 15:40:16
от SergeySpace
Simple Image Gallery Pro не загружает фото на сервер

Автор dekin

Ответов: 2
Просмотров: 1192
Последний ответ 01.05.2018, 17:58:30
от dekin
DJ-MediaTools показывает максимум 50 фото в альбоме

Автор Ether

Ответов: 0
Просмотров: 787
Последний ответ 11.09.2017, 13:09:34
от Ether
Бесплатный модуль "Brilliant Instajoom" для добавления фото с Instagram на Ваш сайт Joomla3

Автор webmap

Ответов: 11
Просмотров: 13369
Последний ответ 14.02.2017, 22:30:39
от mlukyanov
Universal AJAX Live Search Search не выводит фото товаров

Автор tevong

Ответов: 4
Просмотров: 3656
Последний ответ 15.06.2016, 19:46:59
от Eholov