Создание миниатюр с PHP для широкого диапазона форматов файлов


3

Я опаздываю на вечеринку, которую я знаю, однако ...

Это то, что я использую для .PDF, .EPS и .AI thumbnails. (Предполагая, что все необходимые дистрибутивы ImageMagick установлены)

$file = 'filename.pdf.eps.ai';

$cache = $_SERVER['DOCUMENT_ROOT'].'/cache/';//ensure dir is writeable

$ext = "jpg";//just the extension

$dest = $cache.$file.'.'.$ext;

if (file_exists($dest)){
    $img = new imagick();
    $img->readImage($dest);
    header( "Content-Type: image/jpg" );
    echo $img;
    exit;

 } else {

    $img = new imagick($_SERVER['DOCUMENT_ROOT'].'/'.$file.'[0]');
    $img->setImageFormat($ext);

    $width = $img->getImageheight();
    //$img->cropImage($width, $width, 0, 0);
    $img->scaleImage(105, 149, true);

    $img->writeImage($dest);

    header( "Content-Type: image/jpg" );
    echo $img;
    exit;
}

Не знаю, почему это работает, но это так. Один код, чтобы все правильно их исправить?


1

PPT - презентация PowerPoint. Поэтому для создания образа, который является PPT, потребуется некоторая библиотека, которая может снять это.

Вот некоторые ресурсы, которые помогут вам.

EPS - это векторный формат, поэтому, если у вас нет изображения в виде векторных объектов, вы не сможете это сделать правильно.


0

Просто некоторые мысли - ни одна из этих вещей не была проверена мной.

EPS :

Вы должны иметь возможность конвертировать EPS в PDF с помощью ghostscript . Используя imagemagick & ghostscript, вы можете конвертировать PDF в формат растрового изображения (GIF, PNG или JPG).

PPT :

Кажется, это как-то более сложно. Если вы находитесь на машине под Windows, вы можете прибегнуть к использованию Powerpoint API из небольшого рукописного конвертера. Другой возможностью, возможно, было бы использовать Apache POI-HSLF, который является Java API для файла Powerpoint. Для этого потребуется программа Java для процесса преобразования. В последнем случае можно было бы изучить формат двоичного файла Powerpoint и посмотреть, есть ли, например, миниатюра, встроенная (возможно, используемая для значка файла в проводнике Windows), которая может быть извлечена.


0

Вы можете найти бесплатные наборы значков и использовать значок по умолчанию для всего .ppt-файла и другого для всех .eps. Затем вы можете расширить его для всех форматов файлов, которые нельзя преобразовать в изображение, например аудиофайлы. Не идеальное решение, но то, что пользователь может чувствовать себя более комфортно, а затем просто имеет текст.

PHP, ImageMagick, Ghostscript,

php,imagemagick,ghostscript,

1

Ответов: 4


3

Я опаздываю на вечеринку, которую я знаю, однако ...

Это то, что я использую для .PDF, .EPS и .AI thumbnails. (Предполагая, что все необходимые дистрибутивы ImageMagick установлены)

$file = 'filename.pdf.eps.ai';

$cache = $_SERVER['DOCUMENT_ROOT'].'/cache/';//ensure dir is writeable

$ext = "jpg";//just the extension

$dest = $cache.$file.'.'.$ext;

if (file_exists($dest)){
    $img = new imagick();
    $img->readImage($dest);
    header( "Content-Type: image/jpg" );
    echo $img;
    exit;

 } else {

    $img = new imagick($_SERVER['DOCUMENT_ROOT'].'/'.$file.'[0]');
    $img->setImageFormat($ext);

    $width = $img->getImageheight();
    //$img->cropImage($width, $width, 0, 0);
    $img->scaleImage(105, 149, true);

    $img->writeImage($dest);

    header( "Content-Type: image/jpg" );
    echo $img;
    exit;
}

Не знаю, почему это работает, но это так. Один код, чтобы все правильно их исправить?


1

PPT - презентация PowerPoint. Поэтому для создания образа, который является PPT, потребуется некоторая библиотека, которая может снять это.

Вот некоторые ресурсы, которые помогут вам.

EPS - это векторный формат, поэтому, если у вас нет изображения в виде векторных объектов, вы не сможете это сделать правильно.


0

Просто некоторые мысли - ни одна из этих вещей не была проверена мной.

EPS :

Вы должны иметь возможность конвертировать EPS в PDF с помощью ghostscript . Используя imagemagick & ghostscript, вы можете конвертировать PDF в формат растрового изображения (GIF, PNG или JPG).

PPT :

Кажется, это как-то более сложно. Если вы находитесь на машине под Windows, вы можете прибегнуть к использованию Powerpoint API из небольшого рукописного конвертера. Другой возможностью, возможно, было бы использовать Apache POI-HSLF, который является Java API для файла Powerpoint. Для этого потребуется программа Java для процесса преобразования. В последнем случае можно было бы изучить формат двоичного файла Powerpoint и посмотреть, есть ли, например, миниатюра, встроенная (возможно, используемая для значка файла в проводнике Windows), которая может быть извлечена.


0

Вы можете найти бесплатные наборы значков и использовать значок по умолчанию для всего .ppt-файла и другого для всех .eps. Затем вы можете расширить его для всех форматов файлов, которые нельзя преобразовать в изображение, например аудиофайлы. Не идеальное решение, но то, что пользователь может чувствовать себя более комфортно, а затем просто имеет текст.

PHP, ImageMagick, Ghostscript,
Похожие вопросы