使用 PHP 为各种文件格式生成缩略图

发布于 2024-07-25 03:13:56 字数 272 浏览 11 评论 0 原文

我有一个客户请求为他的客户提供上传工具,但上传后要创建图像缩略图。

所有正常图像都可以,但他在谈论 .psd、.pdf、.eps、.ppt

仔细看看周围我认为 imagemagick & Ghostscript 可以满足大部分需求,但我找不到 PPT 或 EPS 的解决方案。

我希望 imagemagick 能够像处理 psd 一样处理 eps。

有关 EPS 或 PPT 文件格式的任何建议。

如果您能提供建议,谢谢。

I have had a client request on a upload facility for his clients, but after upload that a image thumbnail to be created.

All normal images are ok but he his talking about .psd, .pdf, .eps, .ppt

Having a good look around I think wih imagemagick & ghostscript will cater for most of these but I cant find a solution of PPT or EPS.

Im hoping that imagemagick will be able to do eps as it can do a psd.

Any suggestion on EPS or PPT file format.

Thank you if you can advice.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

趴在窗边数星星i 2024-08-01 03:13:57

不过,据我所知,我参加聚会迟到了...

这是我用于 .PDF、.EPS 和 .AI 缩略图的工具。 (假设安装了所有必需的 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;
}

不知道它为什么有效,但它确实有效 - 一个代码可以统治它们吗?

I'm late to the party I know, however...

This is what I use for .PDF, .EPS and .AI thumbnailing. (Assuming all necessary ImageMagick distros installed)

$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;
}

Don't know why it works, but it does - One code to rule them all right?

策马西风 2024-08-01 03:13:57

PPT是一种PowerPoint演示文稿。 因此,创建 PPT 图像需要一些可以实现此目的的库。

这里有一些资源可以帮助您。

EPS 是一种矢量格式,因此,除非您将图像作为矢量对象,否则您将无法正确执行此操作。

PPT is a powerpoint presentation. So creating an image that is a PPT would require some library that can pull this off.

Here are some resources to help you out.

EPS is a vector format, so not unless you have your image as vector objects, you wont be able to do this correctly.

如梦初醒的夏天 2024-08-01 03:13:57

只是一些想法 - 这些东西都没有经过我自己的测试。

EPS

您应该能够使用 幽灵脚本。 使用 imagemagick 和 Ghostscript 您可以将 PDF 转换为某种位图格式(GIF、PNG 或 JPG)。

PPT

这似乎有点复杂。 如果您使用的是 Windows 计算机,您可以在小型手写转换器中使用 Powerpoint API。 另一种可能是使用 Apache POI-HSLF,它是一个 Java API Powerpoint 文件格式。 这需要一个 Java 程序来进行转换过程。 最后的手段可能是研究 Powerpoint 二进制文件格式 并查看是否有例如,可以提取嵌入的缩略图(可能用于 Windows 资源管理器中的文件图标)。

Just some thoughts - none of these things has been tested by myself.

EPS:

You should be able to convert your EPS to a PDF with ghostscript. Using imagemagick & ghostscript you can convert the PDF to some bitmap format (GIF, PNG or JPG).

PPT:

This seems to be somehow more complicated. If your are on a Windows machine you could resort to use the Powerpoint API from within a small hand-written converter. Another possibility would perhaps be to use Apache POI-HSLF whichs is a Java API to the Powerpoint file format. This would require a Java program for the conversion process. The last resort could be that study the Powerpoint binary file format and see if there is e.g. a thumbnail embedded (perhaps beeing used for the file icon in Windows Explorer) that could be extracted.

月朦胧 2024-08-01 03:13:57

您可以找到一些免费的图标集,并为所有 .ppt 文件使用默认图标,为所有 .eps 使用另一个图标。 然后,您可以进一步将其扩展到所有无法转换为图像的文件格式,例如音频文件。 这不是完美的解决方案,但用户可能会觉得比仅使用文本更舒服。

You could find some free icon sets and use a default icon for all .ppt file and another for all .eps. You can then further extend this for all file formats that cannot be converted to a image, such as audio files. Not the perfect solution but something a user may feel more comfortable with then just having text.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文