picture-size-generator
Зміна розміру картинкиinfo
11.01.2023
Скорипт генерації у файлі sizer.php, підключений через include ('sizer.php'); до цієї сторінки.

Планується зробити:

  1. Перевірку наявності папок original та resize, при необхідності створити їх
  2. Порівняня назви картинки у папці resize, з картинкою у папці original
  3. В разі неспівпадіння (відсутності) назв, запускати скрипт генерації
  4. Оформити drop-zone для завантаження картинки в папку original
  5. Оформити вивід ресайз-картинки з посиланням на оригінал (оригінал кремо?)
  6. Оформити вивід імені, типу, дати створення та розмір файла
  7. Генерувати кеш таблиці ресайз-картинок (чи є сенс?) з посиланнями на оригінал

Поки що, бачиться наступне:

Після перевірок, сканується папка resize і виводиться у вигляді мініатюри, з ім'ям і даними про неї. Натисканням на мініатюру, або ім'я - переходити до відкриття в окремому вікні повнорозмірного зображення.

Код файла sizer.php
<?php header("Content-Type: text/html; charset=utf-8"); set_time_limit(0); foreach (glob("original/*.{jpg,JPG,jpeg,JPEG,png,PNG,gif,GIF}", GLOB_BRACE) as $filename) { $imgrename1 = pathinfo($filename, PATHINFO_BASENAME); resize($filename, "resize/" . $imgrename1, 300, 240, '', 90); } // Функція зміни розмірів function resize($file_input, $file_output, $w_new, $h_new, $percent = false, $imgkash) { list($w_i, $h_i, $type) = getimagesize($file_input); if ($w_i || $h_i) { $types = array('', 'gif', 'jpeg', 'png'); $ext = $types[$type]; if ($ext) { $func = 'imagecreatefrom' . $ext; $img = $func($file_input); if ($percent) { $w_new *= $w_i / 100; $h_new *= $h_i / 100; } if (!$w_new) $w_new = $h_new / ($h_i / $w_i); if (!$h_new) $h_new = $w_new / ($w_i / $h_i); $img_new = imagecreatetruecolor($w_new, $h_new); if ($ext == "png") { imagealphablending($img_new, false); imagesavealpha($img_new, true); } imagecopyresampled($img_new, $img, 0, 0, 0, 0, $w_new, $h_new, $w_i, $h_i); if ($type == 2) { imagejpeg($img_new, $file_output, $imgkash); imagedestroy($img_new); } else { $func = 'image' . $ext; $func($img_new, $file_output); imagedestroy($img_new); } } } else echo 'Помилка обробки...'; } ?>
Бонус!