2010-06-05 5 views
4

В любом случае я могу вырезать часть существующего изображения, а затем сохранить результат как новое изображение (файл)?Вырезать часть изображения (не изменять размер/миниатюру и т. Д.)

+1

Сколько вы хотите вырезать и где вы хотите его отрезать? –

+0

Я ищу изображения из URL-адресов на основе контента, и я хочу создать мозаику из изображений, найденных на страницах, выбранных алгоритмом. Я буду генерировать случайные числа, для которых пиксели вырезаются, так как я хочу, чтобы он запускался автоматически, и я не пытаюсь получить «лучшую часть» изображения или что-то в этом роде. – user359294

+1

@Col. Шрапнель Ничего себе, ваше отношение действительно отстой. –

ответ

5

imagecopy позволяет указать аргументы x, y, w, h для изображения src. Объедините это с imagecreatetruecolor, и вы легко сможете достичь того, чего хотите. Существует даже пример в документации imagecopy:

// Create image instances 
$src = imagecreatefromgif('php.gif'); 
$dest = imagecreatetruecolor(80, 40); 

// Copy 
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40); 

Использование imagejpeg или imagepng, чтобы сохранить изображение в файл.

1

Для этого вы можете использовать функции gd (manual).

Загрузить исходное изображение (imagecreatefromstring() может быть полезным, так что вам не нужно указывать тип изображения), создать выходной файл (imagecreatetruecolor()) и использовать imagecopy() (если вы не хотите, чтобы изменить его размер) , В конце используйте imagepng() для вывода изображения или сохранения его в файл.

Обратите внимание, что gd не использует сжатие изображения в памяти, поэтому при создании мозаики высокого разрешения ваш PHP-процесс может потребовать много ОЗУ. Используйте как можно скорее imagefree().

Смежные вопросы