Нужен скрипт resize фотографий

123
O7
На сайте с 09.11.2011
Offline
79
#11

SLIR (Smart Lencioni Image Resizer)

https://github.com/lencioni/SLIR

DiAksID
На сайте с 02.08.2008
Offline
236
#12

ничего скачивать не надо, на любом нормальном хостинге в PHP обязательно включены библиотеки GD и/или ImageMagick. они умеют больше чем может потребоваться...

show must go on !!!...
wwwwww
На сайте с 29.04.2011
Offline
195
#13

http://www.google.ru/search?q=php+gd+library

Примеры можете, например, тут посмотреть

http://php.net/manual/ru/book.image.php

Видишь? Свободная подпись.
GAMMA
На сайте с 27.12.2006
Offline
154
#14
musulman:
GAMMA, а как его запустить? я нашел статью на руселлере, но там не описано как его включить.

Запускаю на денвере
http://localhost/photo/index.php

Выдает

Parse error: syntax error, unexpected '*' in Z:\home\localhost\www\photo\index.php on line 41

Был бы признателен если бы смогли объяснить.

Вот чуть подправленный код

<?php

//скрипт находит все фото в указанной папке и делает минииатюры помещая их в другую указанную папку

$thumb_directory = "images/thumb/"; //Папка для миниатюр
$orig_directory = "images/full/"; //Папка для полноразмерных изображений

$dir_handle = @opendir($orig_directory); //Открываем папку с полноразмерными изображениями
if ($dir_handle > 1){ //Проверяем, что папка открыта и в ней есть файлы

$allowed_types=array('jpg','jpeg','gif','png'); // Список обрабатываемых расширений
$file_parts=array();
$ext='';
$title='';
$i=0;

while ($file = @readdir($dir_handle))
{
/* Пропускаем системные файлы: */
if($file=='.' || $file == '..') continue;

$file_parts = explode('.',$file); //Разделяем имя файла на части
$ext = strtolower(array_pop($file_parts));

/* Используем имя файла (без расширения) как заголовок изображения: */
$title = implode('.',$file_parts);
$title = htmlspecialchars($title);

/* Если расширение входит в список обрабатываемых: */
if(in_array($ext,$allowed_types))
{

/* Если вы планируете хранить изображения в базе данных, вставьте код для запроса здесь */

/* Далее следует код, который разбирался в уроке */
/* Выводим каждое изображение: */

$nw = 150;
$nh = 100;
$source = $orig_directory . $file;
$stype = explode(".", $source);
$stype = $stype[count($stype)-1];
$dest = $thumb_directory . $file;

$size = getimagesize($source);
$w = $size[0];
$h = $size[1];

switch($stype) {
case 'gif':
$simg = imagecreatefromgif($source);
break;
case 'jpg':
$simg = imagecreatefromjpeg($source);
break;
case 'png':
$simg = imagecreatefrompng($source);
break;
}

$dimg = imagecreatetruecolor($nw, $nh);
imageAlphaBlending($dimg, false); //режим смешивания отключить
imageSaveAlpha($dimg, true); //сохранить информацию о прозрачности
$wm = $w/$nw;
$hm = $h/$nh;
$h_height = $nh/2;
$w_height = $nw/2;

/*$dimg = imagecreatetruecolor($nw, $nh);
$wm = $w/$nw;
$hm = $h/$nh;
$h_height = $nh/2;
$w_height = $nw/2;*/

if($w> $h) {
$adjusted_width = $w / $hm;
$half_width = $adjusted_width / 2;
$int_width = $half_width - $w_height;
imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
} elseif(($w <$h) || ($w == $h)) {
$adjusted_height = $h / $wm;
$half_height = $adjusted_height / 2;
$int_height = $half_height - $h_height;

imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
} else {
imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
}
imagejpeg($dimg,$dest,100);
}
}

/* Закрываем папку */
@closedir($dir_handle);

}
?>

А работает очень просто, загружаем в папку images/full большие фотки а в папке images/thumb получаем превьюшки после запуска image_thumb.php. Проверял на OpenServer с 5.2 5.3 и 5.4 PHP работает. Папки можете называть как угодно, главное правильно прописать пути.

Мой сервис блогов (http://mublog.ru) и личный блог (http://blogroot.ru)
Руслан Исмаилов
На сайте с 30.03.2007
Offline
198
#15

GAMMA, туже ошибку на денвере выдает.

Нашел что то вроде готового на DLE

Может кому пригодится. Теперь гадаю, как лучше сделать что бы не грузить сервак скриптом. Есть мысли?

IL
На сайте с 20.04.2007
Offline
435
#16
musulman:
GAMMA, туже ошибку на денвере выдает.

Выше написали - форум [квадратные] скобки заменяет... $stype***91;

musulman:
Теперь гадаю, как лучше сделать что бы не грузить сервак скриптом. Есть мысли?

сохранять результат работы в файлики..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
GAMMA
На сайте с 27.12.2006
Offline
154
#17
musulman:
GAMMA, туже ошибку на денвере выдает.

А папки заранее создал? У меня работает, Денвер уже пару месяцев не использую, только OpenServer.

---------- Добавлено 02.03.2013 в 14:34 ----------

musulman:


Нашел что то вроде готового на DLE
Может кому пригодится. Теперь гадаю, как лучше сделать что бы не грузить сервак скриптом. Есть мысли?

А что, может сильно нагрузить?

Может тогда лучше использовать сторонний сервис по загрузке фото? Или свой поставить, но на другом хостинге. Есть простые до безобразия скрипты фотохостингов которые создают превьюшки фото на лету и выдают код для вставки в форумы, на сайты и прочее. Я таким макаром даю посетителям возможность добавлять в свои статьи фотографии при добавлении статей в каталог.

Если точно определиться что именно хочешь, найти решение уже не сложно.

DiAksID
На сайте с 02.08.2008
Offline
236
#18
musulman:
... Теперь гадаю, как лучше сделать что бы не грузить сервак скриптом. Есть мысли?

что тут гадать? писать ресайзы в кэш и таскать их потом оттуда. всего делов...

Руслан Исмаилов
На сайте с 30.03.2007
Offline
198
#19

Хочу прикрутить данный модуль ресайза для дле, поставил на денвер проверил все работает.

Но работает с условием, что мне нужно вставлять ссылку на изображение в отдельное поле.

<img width="170" height="120" src="/srezka/srezka.php?src=[xfvalue_sms_photo]&amp;w=170&amp;h=120&amp;q=100&amp;zc=1" alt="{title}" />

А у меня доп поля, несколько строк. вставляется туда фотка стандартно

[thumb=left]http://site.ru/uploads/posts/2013-03/1362306798_image.jpg[/thumb]

Как вытащить путь фото версия дле старая 9.3 обновится не получится. :)

Руслан Исмаилов
На сайте с 30.03.2007
Offline
198
#20
DiAksID:
что тут гадать? писать ресайзы в кэш и таскать их потом оттуда. всего делов...

Что именно кешировать?

Поставил скрипт вывода фотографии на лету, сайт сразу начал тормозить и перезагружать сервис.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий