webirus
@webirus
Тыжверстальщик! Наверстай мне упущенное...

Как из PDF сделать превьюшку картинку?

Есть у меня простой код, загружает PDF, перекладывает куда надо и переназывает.
Но вот встала еще одна задачка.
Нужно во время загрузки сделать из PDF (первой страницы) еще и превью.
Превьюха должна загрузиться туда же, с таким же названием и расширением .jpg.
ImageMagick на сервере успешно трудится.

$limit_size = 50*1024*1024; // 1 Mb
    $valid_format = array("pdf");
    $error_array = array();
    $path_file = "../oc-content/uploads/releases/";
    $rand_name = 'postroyka' . date('Ymd',date('w')!=6? strtotime("last Saturday"): time());
    if($_FILES){
        if($_FILES["upload_file"]["size"] > $limit_size){
            $error_array[] = "Размер файла превышает допустимый!";
        }
        $format = end(explode(".", $_FILES["upload_file"]["name"]));
        if(!in_array($format, $valid_format)){
            $error_array[] = "Формат файла не допустимый!";
        }
        if(empty($error_array)){
            if(is_uploaded_file($_FILES["upload_file"]["tmp_name"])){
                move_uploaded_file($_FILES["upload_file"]["tmp_name"], $path_file . $rand_name . ".$format");
            }else{
                $error_array[] = "Ошибка загрузки!";
            }
        }
    };
  • Вопрос задан
  • 1716 просмотров
Решения вопроса 1
webirus
@webirus Автор вопроса
Тыжверстальщик! Наверстай мне упущенное...
Просто положу это тут, сам дошел до решения, оказалось проще, чем думал.

$im = new imagick( $path_file . $rand_name . '.pdf[0]' );
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setCompressionQuality(60);
$im->setImageFormat('jpeg');
$im->resizeImage(290, 375, imagick::FILTER_LANCZOS, 1);
$im->writeImage($path_file . $rand_name . '.jpg');
$im->clear();
$im->destroy();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы