{% else-1 %}
Создание превьюшек. И gif формата.

Требуется imagick.
$image[\'md5\'] - название файла
200 - ширина получившейся картинки

                        
function parse_make_thumb($image) { 

// создаем превью
if ($image['width'] <= 200) {

file_put_contents("thumbs/".$image['md5'].".".$image['type'], file_get_contents("images/".$image['md5'].".".$image['type']));
return;

} else {

$xscale = $image['width'] / 200;
$new_width = round($image['width'] * (1 / $xscale));
$new_height = round($image['height'] * (1 / $xscale));

}

$thumb = new Imagick();

try {

$thumb->readImage("images/".$image['md5'].".".$image['type']);

}

catch (ImagickException $e) {

echo "<center><h3>Непотянуло файл: ".$image['md5'].".".$image['type']."</h3></center>";
return 0;

}
//делаем превью, размер меньше, чем у фона, чтобы было куда впихнуть тень
// $thumb->thumbnailImage($new_width, $new_height);
if ($thumb->getNumberImages() > 1) {

foreach ($thumb as $frame) {

$frame->resizeImage($new_width, $new_height, Imagick::FILTER_TRIANGLE, 1);

}
//записываем картинку
$thumb->writeImages("thumbs/".$image['md5'].".".$image['type'], 1);

} else {

// $thumb->resizeImage($new_width, $new_height, Imagick::FILTER_TRIANGLE, 1);

try {

$thumb->thumbnailImage(200, null);

}

catch (ImagickException $e) {

echo "<center><h3>Непотянуло файл: ".$image['md5'].".".$image['type']."</h3></center>";
return 0;

}

$thumb->writeImage("thumbs/".$image['md5'].".".$image['type']);

}
//подчищаем за собой
$thumb->destroy();

return;

}
1 25 0
Без комментариев...