Я использую codeigniter для создания проекта, и сейчас мне нужно создать большой палец в зависимости от выбора пользователя. как он даст мне X1, Y1, X2, Y2, X3, Y3, X4, Y4. Я хочу обрезать изображение в зависимости от этих 4 точек. Я проверил класс манипуляции с изображениями. функция урожая кажется очень странной. любая помощь, пожалуйста?
Я знаю, что документация разрешена для этой конкретной функции в библиотеке изображений. Функция урожая требует, чтобы вы подавали только на оси. Затем он будет обрезать эти оси и вернуть часть изображения, которая ближе к центру. Поэтому, если вы установите ось x на 10 и ось y на 10, она удалит верхние 10px изображения и левые 10 px изображения. Аналогично, если вы установите ось x на ширину изображения – 10, она обрезает 10 пикселей справа от изображения.
То, что ваши четыре позиции говорят вам, – это действительно четыре разных положения. Поэтому вам нужно выполнить две операции. Вам просто нужно изменить оси между этими $ this-> image_lib-> crop ().
Как определить эти оси зависит от того, как вы получаете эти данные. В массиве, как отдельные значения и т. Д., Поэтому я не буду вдаваться в это.
Вам нужно будет установить ось X (слева), ширину (справа), ось y (верх) и высоту (внизу). Необходимо установить ширину и высоту изображения.
list($width, $height, $type, $attr) = getimagesize($img); $CI->load->library('image_lib'); $config['image_library'] = 'gd2'; $config['source_image'] = $img; $config['x_axis'] = '10'; $config['y_axis'] = '10'; $config['maintain_ratio'] = FALSE; $config['width'] = $width-10; $config['height'] = $height-10;
Приведенный выше код обрезает изображение на 10 пикселей слева, справа, сверху и снизу. вы можете смело изменить значение «10» на любое значение, которое вы предпочитаете;)
Я не получаю никаких результатов в библиотеке gd2. он всегда изменяет размер изображения, но более новые культуры.
так что вот решение с imagemagick и отлично работает.
public function resize_prep($path, $file){ $config['image_library'] = 'imagemagick'; $config['library_path'] = '/usr/bin'; $config['source_image'] = $path; $config['create_thumb'] = TRUE; $config['maintain_ratio'] = FALSE; $config['x_axis'] = 300; $config['y_axis'] = 300; //$config['width'] = 650; //$config['height'] = 353; $config['new_image'] = './uploads/'.$file; $this->load->library('image_lib', $config); //$this->image_lib->crop(); $this->image_lib->initialize($config); if (!$this->image_lib->crop()){ echo $this->image_lib->display_errors(); } }