Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


 Share

Recommended Posts

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

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

Link to comment
Share on other sites


5 minutes ago, buslikdrev said:

 

В описание не указано что обрезает. А может есть сервис по обрезки картинок по ссылкам?

Link to comment
Share on other sites


9 minutes ago, buslikdrev said:
  Reveal hidden contents

image.thumb.png.1ee076fca27f973c99e3a3a4ec00cf6c.png

 

Благодарю! А какой принцип обрезки, по одной картинке или пачкой задать можно в нужной папке? 

Link to comment
Share on other sites


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


  /*
  $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); // Вызываем функцию

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

Link to comment
Share on other sites


  • 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%  (Обрезка с сохранением новых, уже обрезанных фото), есть ли какое то решение?

Link to comment
Share on other sites


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

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

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

  • +1 1
Link to comment
Share on other sites

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

 

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

Link to comment
Share on other sites


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);
			}
		}
Link to comment
Share on other sites


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(смотреть что там за параметры); 
Такой строки вообще нет.
Link to comment
Share on other sites


17.05.2022 в 13:45, chukcha сказал:

Где нет?

У меня, я нашел область с теми данными что вы сбросили и crop там нет.

Link to comment
Share on other sites


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;
	}
	
Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.