PHP

Делаем миниатюры на лету с использованием PHP

Здравствуйте. В сегодняшнем уроке мы будем делать небольшой PHP-скрипт, позволяющий нам из полноразмерных больших изображений делать миниатюры. Этот инструмент может пригодиться у Вас на сайте для создания аватаров или миниатюр к Вашим статьям. Для начала посмотрите демо получившейся формы и скачайте исходные файлы:

Шаг 1. Конфигурация.

Нам понадобится в работе небольшой файл конфигурации. Для этого создаем файл config.php и прописываем туда нижеприведенный код, к которому я привожу комментарии для пояснения:

PHP:
<?
$final_width_of_image = 100; //Размер изображения которые Вы хотели бы получить (И ШИРИНА И ВЫСОТА)
$path_to_image_directory = 'images/full/'; //Папка, куда будут загружаться полноразмерные изображения
$path_to_thumbs_directory = 'images/thumbs/';//Папка, куда будут загружаться миниатюры
?>

Шаг 2. Конструкция окна загрузки.

Теперь создадим еще один файл - index.php и составим для него HTML-конструкцию для возможности загрузки файлов. Выглядеть код этой формы будет следующим образом:
<h1>Загрузка изображений:</h1>	
<form enctype="multipart/form-data" action="" method="post">		
<input type="file" name="fupload" />		
<input type="submit" value="Загрузить" />	
</form>

Шаг 3. Подготовка к загрузке.

Далее, как Вы уже поняли нам нужно будет подготовить нашу форму к отправке изображений на их сжатие, т. е. прописать те форматы, изображения которых мы собрались загружать и многое, многое другое... Ниже я привожу PHP-код, котрый Вы обязаны вставить в самом верху индексного файла, еще до тега <!DOCTYPE...>:
<?php 
  require 'config.php'; //Подключаем файл конфигурации
  require 'process.php'; //Подключаем файл-обработчик
if(isset($_FILES['fupload'])) {
    
  if(preg_match('/[.](jpg)|(gif)|(png)$/', //Ставим допустимые форматы изображений для загрузки
  $_FILES['fupload']['name'])) {
  
  $filename = $_FILES['fupload']['name'];
  $source = $_FILES['fupload']['tmp_name']; 
  $target = $path_to_image_directory . $filename;
  
  move_uploaded_file($source, $target);
  
  createThumbnail($filename); 
  }
  }
  ?>

Шаг 4. Скрипт сжатия фото.

На этом этапе мы должны создать файл process.php, занимающийся сжатием полноразмерных изображений и их выводом. Ниже я разместил код для этого файла с комментариями к нему:

PHP
<?
function createThumbnail($filename) {
    
  require 'config.php'; //Подключаем файл конфигурации
  
  if(preg_match('/[.](jpg)$/', $filename)) {
  $im = imagecreatefromjpeg($path_to_image_directory . $filename);
  } else if (preg_match('/[.](gif)$/', $filename)) {
  $im = imagecreatefromgif($path_to_image_directory . $filename);
  } else if (preg_match('/[.](png)$/', $filename)) {
  $im = imagecreatefrompng($path_to_image_directory . $filename);
  } //Определяем формат изображения
  
  $ox = imagesx($im);
  $oy = imagesy($im);
  
  $nx = $final_width_of_image;
  $ny = floor($oy * ($final_width_of_image / $ox));
  
  $nm = imagecreatetruecolor($nx, $ny);
  
  imagecopyresized($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);
  
  if(!file_exists($path_to_thumbs_directory)) {
  if(!mkdir($path_to_thumbs_directory)) {
  die("Возникли проблемы! попробуйте снова!");
  } 
  }
 imagejpeg($nm, $path_to_thumbs_directory . $filename);
  $tn = '<img src="' . $path_to_thumbs_directory . $filename . '" alt="image" />';
  $tn .= '<br />Поздравляем! Ваше изображение успешно загружено и его миниатюра удачно выполнена. Выше Вы можете просмотреть результат:';
  echo $tn;
  }//Сжимаем изображение, если есть оишибки, то говорим о них, если их нет, то выводим получившуюся миниатюру

?>

Шаг 5. Подключение необходимых файлов.

Вот и последний шаг нашей славной работы... Теперь нам нужно в индексном файле подключить файл конфигурации и файл-обработчик изображений. Для этого в самом верху файла, сразу после открытия PHP вставляем следующие строки:
require 'config.php'; //Подключаем файл конфигурации
require 'process.php'; //Подключаем файл-обработчик

Также, не забываем о подключении конфигурационного файла к файлу-обработчику изображений. Ведь это очень важно! В файле process.php, также, вверху, сразу после открытия PHP вставляем следующий код:
require 'config.php'; //Подключаем файл конфигурации

Заключение.

Вот, в принципе, и все. На этом мой урок подошел к концу. Надеюсь, что Вам очень понравился данный инструмент по созданию миниатюр и очень Вам пригодится. Спасибо за внимание, до новых встреч!

С искренним уважением, Максим Курочкин
Теги:
миниатюры
Добавлено: 02 Мая 2018 20:15:07 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...