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

Как разделить одну картинку на несколько картинок с использованием 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; / / определить высоту отдельных сегментов

за ($ 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"); / / распечатать изображение название здесь, так что этот процесс показывает, как оно работает
$ IM = @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ IM, $ источника, 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 ($ IM "вставить DESTINATION здесь", 100)) / / The назначения будет нечто вроде / Главная страница / Содержание / C / H / D / фото / $ FN

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

)

)

)

)

?>

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

Написал в функции PHP на ShortLikeAFox по 22 Июль 2008

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

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

Функция createThumbs ($ pathToImages, $ FName, $ pathToThumbs, $ thumbWidth)
(

/ / Разбор путь для расширения

Информация $ = pathinfo ($ pathToImages. $ FName);
/ / Продолжать только в том случае, если это JPEG изображение
($info['extension']) == ‘jpeg’) ) если ((strtolower ($ Инфо [ 'расширение']) == 'JPG') | | (strtolower ($ Инфо [ 'расширение']) == 'JPEG'))
(

/ / Загрузить изображение и получить изображение размером
$ IMG = imagecreatefromjpeg ( "($ pathToImages) ($ FName)");
$ ширина = 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) ($ FName)");

)

если (strtolower ($ Инфо [ 'расширение']) == 'GIF')
(

/ / Загрузить изображение и получить изображение размером
$ IMG = imagecreatefromgif ( "($ pathToImages) ($ FName)");
$ ширина = 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) ($ FName)");

)

если (strtolower ($ Инфо [ 'расширение']) == 'PNG')
(

/ / Загрузить изображение и получить изображение размером
$ IMG = imagecreatefrompng ( "($ pathToImages) ($ FName)");
$ ширина = 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) ($ FName)");

)

)

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

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

  • $ pathToImages -> Путь к папке файл образа является дюйма Она может выглядеть примерно так: / Главная / Содержание / имя пользователя / HTML / список / закачки /
  • $ FName -> Имя файла: pic1.gif, johnny.jpg, и т.д. ...
  • $ pathToThumbs -> Путь к папке, вы хотите эскизов изображений для дюйма вы не хотите, чтобы это тот же путь, как $ pathToImages, потому эскизов изображений будут иметь то же имя в качестве исходного изображения.
  • $ thumbWidth -> Ширина, что вы хотите миниатюру, чтобы быть в пикселях.

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

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

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