Как делить одного изображения на несколько изображений с помощью PHP

Опубликовано в функции PHP по ShortLikeAFox по 26 августа 2008

Так вы хотите разорвать одно большое изображение на несколько меньших образы? Нет проблем. Это может показаться скрывать проблемы, а Существуют несколько причин, по которым Вы хотели бы это сделать. Может быть, вы хотите создать визуальное раздвижных пазл. Или, может быть запущена уникальная WordPress тема. Или вы хотите создать коллаж какой-то. Он действительно не имеет значения, почему вы хотите разбить изображение на более мелкие изображения, PHP делает эту задачу легко. В качестве примера ниже рассматривается только с файлами JPEG. Изменение функции для решения других видов изображений не будет трудно.

<? PHP
/ / Эта функция будет разделить образ на несколько одинаковых по размеру столбцов и строк.
Функция split_image ($ number_of_rows, $ number_of_cols, $ path_to_image, $ имя_файла) (

/ / $ = # number_of_rows строк вы хотите;
/ / $ = # number_of_cols в столбиках вы хотите
/ / $ path_to_image = путь к папке, в образ, что-то вроде: / Главная страница / Содержание / имя пользователя / HTML / список / добавления /
/ / $ = имя_файла имя файла изображения: archery.jpg и т.д.

/ / Разбор пути для расширения
$file_name); $ Info = pathinfo ($ path_to_image. имя_файла $);

/ / убедиться, что мы имеем дело с JPEG
($info[ 'extension' ]) == ‘jpg’ ) || ( strtolower ($info[ 'extension' ]) == ‘jpeg’ ) ){ если ((strtolower ($ Info [ 'расширение']) == 'JPG') | | (strtolower ($ Info [ 'расширение']) == 'JPEG')) (

/ / Загрузить изображение и получить изображение размером
); $ источника = imagecreatefromjpeg ( "($ path_to_image) ($) имя_файла");
$ = ширина imagesx ($ Source); / / Найти ширина
$ высота = imagesy ($ Source); / / Найти высоту
$ = $ segment_width ширина / $ number_of_cols / / Определение ширины отдельных сегментов
$ = $ segment_height высота / $ number_of_rows / / Определите высоту отдельных сегментов

за ($ Col = 0; $ Col <$ number_of_cols; Col $ + +)
(

за ($ подряд = 0; $ строку <$ number_of_rows; $ подряд + +)
(

, $col, $row ); $ FN = sprintf ( "% 02d_ IMG 02d.jpg%", $ Col, $ строка);
); //I print the image name here, so that the process shows itself as it runs эхо ( "$ FN"); / / I печатать изображения названия, думаю, что этот процесс показывает, как оно работает
$ IM = @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ им, $ источника, 0, 0, $ Col segment_width * $, $ * $ подряд segment_height, $ segment_width, $ segment_height, $ segment_width, $ segment_height);
Файл $ = "test.jpg";
/ / Сохранить изображения
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn если (imagejpeg ($ им, "INSERT НАЗНАЧЕНИЯ здесь", 100)) / / назначения будет нечто вроде / Home / содержание / C / ч / д / фото / $ FN

эхо ( "был достигнут! <br/>");

)

)

)

)

?>