Архив для функций

Как разделить одно изображение на несколько изображений с помощью 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); Информация $ = pathinfo ($ path_to_image. $ Имя_файла);

/ / Убедитесь, что мы имеем дело с JPEG
($info[ 'extension' ]) == 'jpg' ) || ( strtolower ($info[ 'extension' ]) == 'jpeg' ) ){ если ((strtolower ($ информацию "расширение [']) ==' JPG ') | | (strtolower ($ Информация расширение'] [) == 'JPEG')) (

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

для ($ коллег = 0, $ коллег <$ number_of_cols, $ коллег + +)
(

для ($ строки = 0, $ строку <$ number_of_rows, $ строки + +)
(

, $col, $row ); $ / П = sprintf ("IMG% 02d_ 02d.jpg%", $ коллег, $ подряд);
); //I print the image name here, so that the process shows itself as it runs эхо ("$ / п"); / / напечатать имя изображения здесь, так что этот процесс проявляется как она работает
$ = @ Им imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ им, $ источника, 0, 0, $ * $ коллег 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)) / / назначения будет нечто вроде / Главная / содержание / с / г / изображения / $ / п

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

)

)

)

)

?>

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

Опубликовано в функции , PHP по ShortLikeAFox по 22 июля 2008

Итак, вы хотите создать миниатюру данное изображение ... PHP, делают эту задачу легко. Сначала я написал функцию ниже для рассмотрения изображения, загруженные пользователями на сайте я могу помочь управлять. Загруженные изображения на этом сайте может быть JPEG, PNG, GIF-либо, так что мне пришлось написать функцию, которая рассматривает все три. Этот код изначально основаны офф функции найти на webcheatsheet.com

Как это сделать:

Функция createThumbs ($ pathToImages, $ Епате, $ pathToThumbs, $ thumbWidth)
(

/ / Проанализировать пути расширения

Информация $ = pathinfo ($ pathToImages. Епате $);
/ / По-прежнему, только если это изображение JPEG
($info['extension']) == 'jpeg') ) если ((strtolower ($ информацию "расширение [']) ==' JPG ') | | (strtolower ($ Информация расширение'] [) == 'JPEG'))
(

/ / Изображений нагрузки и получить размер изображения
$ IMG = imagecreatefromjpeg ("($ pathToImages) ($ Епате)");
$ Ширина = imagesx ($ IMG);
$ Высота = imagesy ($ IMG);

/ / Вычислить размер эскизов
$ = $ New_width thumbWidth;
$ = New_height этаж (высота * $ ($ thumbWidth / $ ширина));

/ / Создаем новую временную изображений
$ = Tmp_img imagecreatetruecolor ($ new_width, $ new_height);

/ / Копирование и изменение размера изображения старого в новый образ
imagecopyresized ($ tmp_img, $ IMG, 0, 0, 0, 0, $ new_width, $ new_height, $ ширина, $ высота);

/ / Сохранить миниатюру в файл
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ Епате)");

)

если (strtolower ($ информацию "расширение [']) ==' GIF ')
(

/ / Изображений нагрузки и получить размер изображения
$ IMG = imagecreatefromgif ("($ pathToImages) ($ Епате)");
$ Ширина = imagesx ($ IMG);
$ Высота = imagesy ($ IMG);

/ / Вычислить размер эскизов
$ = $ New_width thumbWidth;
$ = New_height этаж (высота * $ ($ thumbWidth / $ ширина));

/ / Создаем новую временную изображений
$ = Tmp_img imagecreatetruecolor ($ new_width, $ new_height);

/ / Копирование и изменение размера изображения старого в новый образ
imagecopyresized ($ tmp_img, $ IMG, 0, 0, 0, 0, $ new_width, $ new_height, $ ширина, $ высота);

/ / Сохранить миниатюру в файл
imagegif ($ tmp_img, "($ pathToThumbs) ($ Епате)");

)

если (strtolower ($ информацию "расширение [']) ==' PNG ')
(

/ / Изображений нагрузки и получить размер изображения
$ IMG = imagecreatefrompng ("($ pathToImages) ($ Епате)");
$ Ширина = imagesx ($ IMG);
$ Высота = imagesy ($ IMG);

/ / Вычислить размер эскизов
$ = $ New_width thumbWidth;
$ = New_height этаж (высота * $ ($ thumbWidth / $ ширина));

/ / Создаем новую временную изображений
$ = Tmp_img imagecreatetruecolor ($ new_width, $ new_height);

/ / Копирование и изменение размера изображения старого в новый образ
imagecopyresized ($ tmp_img, $ IMG, 0, 0, 0, 0, $ new_width, $ new_height, $ ширина, $ высота);

/ / Сохранить миниатюру в файл
imagepng ($ tmp_img, "($ pathToThumbs) ($ Епате)");

)

)

Как это работает

Функция createThumbs принимает четыре аргумента.

  • $ PathToImages -> путь к папке файл образа дюйма Это может выглядеть примерно так: / Главная / содержание / имя пользователя / HTML / список / добавления /
  • $ Епате -> имя: pic1.gif, johnny.jpg, и т.д. ...
  • $ PathToThumbs -> путь к папке, вы хотите, эскиз будет дюйма Вы НЕ хочу, чтобы это тот же путь, $ pathToImages, так как миниатюрное изображение будет иметь то же имя, что и исходное изображение.
  • $ ThumbWidth -> ширины, что вы хотите по картинке, чтобы быть в пикселях.

Важное замечание, что я должен делать здесь то, что эта функция не имеет ничего месте, кроме проверки файловой расширение, чтобы убедиться, что файлы не содержат ничего вредоносного. Так как файлы createThumbs () работает с уже загружены предполагается, что файлы были должным образом изучить.

Первая вещь createThumbs () делает вызов pathinfo () . pathinfo () разбивает части пути в виде массива. Это полезно для нас, потому что мы нуждаемся в файл с расширением правильно создать миниатюру. Следующая createThumbs () проверяет, чтобы, если мы имеем дело с JPEG. Если исходный файл JPEG createThumbs создает новое изображение на основе исходного изображения с imagecreatefromjpeg () . Следующим шагом будет получить ширина и высота этого изображения ( imagesx () , imagesy () ). Использование $ thumbWidth и отношение первоначальной ширины и высоты createThumbs () устанавливает новые ширина и высота мин. Используя эти новые отношения createThumbs () создает "пустой" изображение, которое будет такой же ширины и высоты с миниатюрами imagecreatetruecolor () . imagecopyresized () используется для изменения размера изображения и сохранить его в "чистый" только что создали. imagecopyresized (), может показаться, как это имеет много параметров, но если вы посмотрите на документацию, если она на самом деле не так уж сложно. Теперь, когда с миниатюрами существует как истинные цвета изображения всех createThumbs нужно сделать, это преобразовать файл в формате JPEG. Для этого imagejpeg () называется.

Вот как работает функция для JPEG. Есть минимальные различия в. PNG файлов и. GIF.