# MoD (17.11.2014 / 21:27)
Andrei4ik93, Посмотри файл /forum/thumbinal.php
Это как-раз то, что тебе надо
Окей.Но у меня хоть и не джон,но попробую
Да там все понятно. Ну а так
[spoiler=]
function image_resize(
$source_path,
$destination_path,
$newwidth,
$newheight = FALSE,
$quality = FALSE // качество для формата jpeg
) {
ini_set("gd.jpeg_ignore_warning", 1); // иначе на некоторых jpeg-файлах не работает
list($oldwidth, $oldheight, $type) = getimagesize($source_path);
switch ($type) {
case IMAGETYPE_JPEG: $typestr = 'jpeg'; break;
case IMAGETYPE_GIF: $typestr = 'gif' ;break;
case IMAGETYPE_PNG: $typestr = 'png'; break;
}
// анимация
if($type == 1){
$images = new Imagick($source_path);
if($images->getNumberImages() > 1){
$images = $images->coalesceImages();
$oldwidth = $images->getImageWidth();
$oldheight = $images->getImageHeight();
if (!$newheight) { $newheight = round($newwidth * $oldheight/$oldwidth); }
elseif (!$newwidth) { $newwidth = round($newheight * $oldwidth/$oldheight); }
do {
$images->scaleImage($newwidth, $newheight);
} while ($images->nextImage());
$images = $images->deconstructImages();
$images->writeImages($destination_path, true);
return;
}
}
$function = "imagecreatefrom$typestr";
$src_resource = $function($source_path);
if (!$newheight) { $newheight = round($newwidth * $oldheight/$oldwidth); }
elseif (!$newwidth) { $newwidth = round($newheight * $oldwidth/$oldheight); }
$destination_resource = imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($destination_resource, $src_resource, 0, 0, 0, 0, $newwidth, $newheight, $oldwidth, $oldheight);
imagegammacorrect($destination_resource, 1, 1.1);
if ($type == 2) { # jpeg
imageinterlace($destination_resource, 1);
imagejpeg($destination_resource, $destination_path, $quality);
}
else { # gif, png
$function = "image$typestr";
$function($destination_resource, $destination_path);
}
imagedestroy($destination_resource);
imagedestroy($src_resource);
}
Использование
// пусть файл $imgpath - изображение 800х600
image_resize($imgpath, $preview, 100); // будет создано изображение $preview 100х75
image_resize($imgpath, $preview, 0, 100); // а так $preview получится 133х100
[/spoiler]
# djorj9 (17.11.2014 / 21:32)
ошибка 500
Что за хостинг у тебя? Возможно, он что-то запрещает изменять посредством htaccess, из-за этого и ошибки
# djorj9 (17.11.2014 / 21:32)
ошибка 500
Ошибка в каком случае? Когда оптионс закомментен? Или при включенном выводе ошибок?
# MoD (17.11.2014 / 21:36)
Ошибка в каком случае? Когда оптионс закомментен? Или при включенном выводе ошибок?
Когда оптионс закомментен критическая ошибка а при включенном выводе ошибок 500
# MoD (17.11.2014 / 21:35)
Да там все понятно. Ну а так
function image_resize(
$source_path,
$destination_path,
$newwidth,
$newheight = FALSE,
$quality = FALSE // качество для формата jpeg
)
Мне надо абсолютно для всех фото одинаковые превью.....или чтоб как то по другому можно?
# Andrei4ik93 (17.11.2014 / 21:42)
Мне надо абсолютно для всех фото одинаковые превью.....или чтоб как то по другому можно?
Вот смотри, функцию бери, и выводи кучку картинок через нее. Либо вообще тогда через <img src="image.jpg" width="100" height="100" alt="#" />
Тут гарантированно у всех будет одинаково))
# djorj9 (17.11.2014 / 21:38)
Когда оптионс закомментен критическая ошибка а при включенном выводе ошибок 500
Какая критическая ошибка? В логах что?