Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Обрезка watermark (картинок)


Recommended Posts

Подскажите, существует модуль обрезки ватермарка или картинок по границе? 

Надо загрузить прайс, а там картинки ссылками около 2тыс .  Все картинки с ватермарком 

Надіслати
Поділитися на інших сайтах


В его случае, там где он загружает изображение к себе использовать:


  /*
  $x_o и $y_o - координаты левого верхнего угла выходного изображения на исходном
  $w_o и h_o - ширина и высота выходного изображения
  */
  function crop($image, $x_o, $y_o, $w_o, $h_o) {
    if (($x_o < 0) || ($y_o < 0) || ($w_o < 0) || ($h_o < 0)) {
      echo "Некорректные входные параметры";
      return false;
    }
    list($w_i, $h_i, $type) = getimagesize($image); // Получаем размеры и тип изображения (число)
    $types = array("", "gif", "jpeg", "png"); // Массив с типами изображений
    $ext = $types[$type]; // Зная "числовой" тип изображения, узнаём название типа
    if ($ext) {
      $func = 'imagecreatefrom'.$ext; // Получаем название функции, соответствующую типу, для создания изображения
      $img_i = $func($image); // Создаём дескриптор для работы с исходным изображением
    } else {
      echo 'Некорректное изображение'; // Выводим ошибку, если формат изображения недопустимый
      return false;
    }
    if ($x_o + $w_o > $w_i) $w_o = $w_i - $x_o; // Если ширина выходного изображения больше исходного (с учётом x_o), то уменьшаем её
    if ($y_o + $h_o > $h_i) $h_o = $h_i - $y_o; // Если высота выходного изображения больше исходного (с учётом y_o), то уменьшаем её
    $img_o = imagecreatetruecolor($w_o, $h_o); // Создаём дескриптор для выходного изображения
    imagecopy($img_o, $img_i, 0, 0, $x_o, $y_o, $w_o, $h_o); // Переносим часть изображения из исходного в выходное
    $func = 'image'.$ext; // Получаем функция для сохранения результата
    return $func($img_o, $image); // Сохраняем изображение в тот же файл, что и исходное, возвращая результат этой операции
  }
  crop("image.jpg", 100, 100, 200, 50); // Вызываем функцию

Эта функция, обрежет и сохранить в тот же файл уже обрезанное изображение. Можно сделать обрезку только куска. Смысл я показал. Точное место сказать тоже не могу, так как кода импорта нету и как именно хочется обрезать, но суть понятна. 

Надіслати
Поділитися на інших сайтах


  • 3 years later...
03.07.2018 в 09:03, ProDeveloper сказал:

В его случае, там где он загружает изображение к себе использовать:


  /*
  $x_o и $y_o - координаты левого верхнего угла выходного изображения на исходном
  $w_o и h_o - ширина и высота выходного изображения
  */
  function crop($image, $x_o, $y_o, $w_o, $h_o) {
    if (($x_o < 0) || ($y_o < 0) || ($w_o < 0) || ($h_o < 0)) {
      echo "Некорректные входные параметры";
      return false;
    }
    list($w_i, $h_i, $type) = getimagesize($image); // Получаем размеры и тип изображения (число)
    $types = array("", "gif", "jpeg", "png"); // Массив с типами изображений
    $ext = $types[$type]; // Зная "числовой" тип изображения, узнаём название типа
    if ($ext) {
      $func = 'imagecreatefrom'.$ext; // Получаем название функции, соответствующую типу, для создания изображения
      $img_i = $func($image); // Создаём дескриптор для работы с исходным изображением
    } else {
      echo 'Некорректное изображение'; // Выводим ошибку, если формат изображения недопустимый
      return false;
    }
    if ($x_o + $w_o > $w_i) $w_o = $w_i - $x_o; // Если ширина выходного изображения больше исходного (с учётом x_o), то уменьшаем её
    if ($y_o + $h_o > $h_i) $h_o = $h_i - $y_o; // Если высота выходного изображения больше исходного (с учётом y_o), то уменьшаем её
    $img_o = imagecreatetruecolor($w_o, $h_o); // Создаём дескриптор для выходного изображения
    imagecopy($img_o, $img_i, 0, 0, $x_o, $y_o, $w_o, $h_o); // Переносим часть изображения из исходного в выходное
    $func = 'image'.$ext; // Получаем функция для сохранения результата
    return $func($img_o, $image); // Сохраняем изображение в тот же файл, что и исходное, возвращая результат этой операции
  }
  crop("image.jpg", 100, 100, 200, 50); // Вызываем функцию

Эта функция, обрежет и сохранить в тот же файл уже обрезанное изображение. Можно сделать обрезку только куска. Смысл я показал. Точное место сказать тоже не могу, так как кода импорта нету и как именно хочется обрезать, но суть понятна. 

Добрый день.
Подскажите для новичка, мне нужна Обрезка фото, например,  снизу на 21%  (Обрезка с сохранением новых, уже обрезанных фото), есть ли какое то решение?

Надіслати
Поділитися на інших сайтах


14.05.2022 в 15:40, uatrend сказал:

Добрый день.
Подскажите для новичка, мне нужна Обрезка фото, например,  снизу на 21%  (Обрезка с сохранением новых, уже обрезанных фото), есть ли какое то решение?

Он вам никогда не ответит. А для новичка есть php.net или решение выше.

  • +1 1
Надіслати
Поділитися на інших сайтах

15.05.2022 в 10:33, chukcha сказал:
                $image = new Image(DIR_IMAGE . $image_old);
                $image->crop(смотреть что там за параметры);
                $image->save(DIR_IMAGE . $image_new);

 

Можете детальнее, как для чайника, где смотреть? Плиз!

Надіслати
Поділитися на інших сайтах


15.05.2022 в 21:21, uatrend сказал:

Можете детальнее, как для чайника, где смотреть? Плиз!

if ($width_orig != $width || $height_orig != $height) {
				$image = new Image(DIR_IMAGE . $image_old);
				$image->resize($width, $height);
				$image->save(DIR_IMAGE . $image_new);
			} else {
				copy(DIR_IMAGE . $image_old, DIR_IMAGE . $image_new);
			}
		}
Надіслати
Поділитися на інших сайтах


17.05.2022 в 12:09, uatrend сказал:
if ($width_orig != $width || $height_orig != $height) {
				$image = new Image(DIR_IMAGE . $image_old);
				$image->resize($width, $height);
				$image->save(DIR_IMAGE . $image_new);
			} else {
				copy(DIR_IMAGE . $image_old, DIR_IMAGE . $image_new);
			}
		}
$image->crop(смотреть что там за параметры); 
Такой строки вообще нет.
Надіслати
Поділитися на інших сайтах


17.05.2022 в 12:10, uatrend сказал:
$image->crop(смотреть что там за параметры); 
Такой строки вообще нет.

Где нет?

Надіслати
Поділитися на інших сайтах

17.05.2022 в 14:12, chukcha сказал:

добавьте sysytem/  в начало

Спасибо, нашел.

 

 @param	int		$top_x
	 * @param	int		$top_y
	 * @param	int		$bottom_x
	 * @param	int		$bottom_y
     */
	public function crop($top_x, $top_y, $bottom_x, $bottom_y) {
		$image_old = $this->image;
		$this->image = imagecreatetruecolor($bottom_x - $top_x, $bottom_y - $top_y);

		imagecopy($this->image, $image_old, 0, 0, $top_x, $top_y, $this->width, $this->height);
		imagedestroy($image_old);

		$this->width = $bottom_x - $top_x;
		$this->height = $bottom_y - $top_y;
	}
	
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.