Здравствуйте. Передо мной стоит такая задача . Есть файл с картинкой. Мне нужно вырезать из него кусок. Для этого у меня есть смещение по вертикали и горизонтали, а так же ширина и высота вырезаемой области. Этот кусок мне необходимо сохранить в png файле.
параметры функции:
1. dir - директория хранения исходного файла
2. img - имя исходного файла
3. topPosition - смещение по вертикали (откуда необходимо вырезать)
4. leftPosition - смещение по горизонтали (откуда необходимо вырезать)
5. cropWidth - ширина вырезаемой области
6. cropHeight - высота вырезаемой области
PHP:
скопировать код в буфер обмена
private function imageCrop($dir, $img, $prefix, $topPosition, $leftPosition, $cropWidth, $cropHeight) { if(!$width || !$height) return false; $types = array('gif', 'jpg', 'jpeg', 'png'); $ext = $types[$type]; $baseName = $baseName['filename'].'.png'; if($ext) { switch($ext) { case 'jpg': default: break; } imagecopyresized($imgNew, $imgRes, 0 , 0 , $topPosition, $leftPosition, $cropWidth, $cropHeight, $width, $height); imagepng($imgNew, $dir.$prefix.$baseName); return '/'.$dir.$prefix.$baseName; } else { echo 'Не корректный формат файла'; return false; } }
Функция работает но некорректно. Вырезание начинается не с нужного места и внизу остается черная полоса. Возможно тут проблемы с пропорциями исходного файла и вырезаемой области. Не могу разобраться. Прошу помощи.(Отредактировано автором: 02 Апреля, 2014 - 19:16:27)
|