Как можно средствами php обрезать картинки?
Как можно средствами php обрезать картинки?
Скачиваю картинки с сайта, для дальнейшего использования нужно отрезать часть картинки. Как это можно сделать с помощью PHP?
Re: Как можно средствами php обрезать картинки?
Вот вам пример подобной функции:
Используется:
function crop($file_input, $file_output, $crop = 'square',$percent = false) { list($w_i, $h_i, $type) = getimagesize($file_input); if( $type=='jpg') $type='jpeg'; if (!$w_i || !$h_i) { echo 'не возможно получить длину и ширину'; return; } $types = array('','gif','jpeg','png'); $ext = $types[$type]; if ($ext) { $func = 'imagecreatefrom'.$ext; $img = $func($file_input); } else { echo 'Неккоректный формат'; return; } if ($crop == 'square') { $min = $w_i; if ($w_i > $h_i) $min = $h_i; $w_o = $h_o = $min; } else { list($x_o, $y_o, $w_o, $h_o) = $crop; if ($percent) { $w_o *= $w_i / 100; $h_o *= $h_i / 100; $x_o *= $w_i / 100; $y_o *= $h_i / 100; } if ($w_o < 0) $w_o += $w_i; $w_o -= $x_o; if ($h_o < 0) $h_o += $h_i; $h_o -= $y_o; } //echo "$w_o, $h_o<br>"; $img_o = imagecreatetruecolor($w_o, $h_o); imagecopy($img_o, $img, 0, 0, $x_o, $y_o, $w_o, $h_o); if ($type == 2) { return imagejpeg($img_o,$file_output,100); } else { $func = 'image'.$ext; return $func($img_o,$file_output); } }
Используется:
crop("путь к источнику","путь к результату", array(left, top, width, height),"в процентах");
http://x-scripts.com/
Код: Выделить всё
<?php
$xhe_host ="127.0.0.1:7010";
require("../Templates/xweb_human_emulator.php");
$browser->navigate("http://x-scripts.com");
$app->quit();?>
Re: Как можно средствами php обрезать картинки?
left - отступ от левого края картинки
top - отступ от верхнего края картинки
width - ширина картинки
height - высота картинки
"в процентах" - указывает параметры высоты и ширины заданны в процентах или нет.
Вот такой вот вызов:
crop("1.png", "1_0x10x80x92_t.png", array(0,10,80,92), true);
Это отступаем от верхнего края 10px при этом от ширины у нас остаётся 80%,а от высоты 92%. По этим параметрам и идёт обрезание картинки.
Если делать вызов :
crop("1.png", "1_0x10x80x92_t.png", array(0,10,80,92), false);
тогда отступ сверху такой же, ширина картинки 80, высота 92. ТО есть мы можем либо задавать жёсткие размеры либо отрезать сколько то процентов от ширины и высоты.
http://x-scripts.com/
Код: Выделить всё
<?php
$xhe_host ="127.0.0.1:7010";
require("../Templates/xweb_human_emulator.php");
$browser->navigate("http://x-scripts.com");
$app->quit();?>
Re: Как можно средствами php обрезать картинки?
Спасибо за помощь. Всё работает как надо.