为cutycapt和imagemagick生成更多吞吐量以生成缩略图

时间:2011-06-22 18:01:43

标签: linux image image-processing imagemagick thumbnails

我正在寻找一种解决方案来生成网站列表的屏幕截图的缩略图,并保存到磁盘。

我发现以下命令可以做到这一点。我在ubuntu 中得到了一个有效的 shell脚本,可以很好地生成图像。 (CutyCapt + ImageMagick包)

cutycapt --url=http://www.yahoo.com --out=yahoo.png
convert yahoo.png -thumbnail 150x180^ -gravity NorthWest -extent 150x180 yahoothumb.jpg

但是,它是连续的并且需要很多时间。我想过创建一个PHP或Python脚本,我将在Apache中作为一个网页托管。然后一个单独的程序将生成多个请求,以增加生成图像的吞吐量。

我首先尝试了 PHP

<?php echo exec('cutycapt --url=http://www.google.com --out=/var/www/google.png --javascript=on');?>

CutyCapt 失败如下: CutyCapt:无法连接到 X服务器。 我正在使用与我运行常规shell脚本相同的身份 /用户运行PHP / Apache。

顺便说一句,我是C#开发人员。所以相对不太熟悉PHP,Linux,Scripts。我可以处理PHP,Apache的配置文件,但是:)

我曾尝试使用.NET在内存中启动IE,但它很麻烦,也无法产生最佳效果+需要STA:所以吞吐量会非常低。

2 个答案:

答案 0 :(得分:3)

我已经在生产中使用了this page详细介绍的Xvfb和CutyCapt组合几年没有问题。事实上,我发现这个组合非常可靠,我编写了一个Ruby包装器库(capit)来简化我正在使用的一些新Ruby应用程序中的组合。

另外,虽然我没有在制作中使用它,但我也能够使用PhantomJS库的渲染功能复制类似的结果。

编辑:

您可能需要查看this article,了解如何将CutyCapt作为各种服务运行。

答案 1 :(得分:0)

不要依赖外部程序来进行图像处理,而是尝试使用PHP的内置GD image library。根据我的经验,它非常快速且非常广泛,可提供任何和所有图像分析和操作功能。

Here是我几年前在PHP中编写的缩略图脚本,它除了提供了很多选项外,还集成了一些技巧来自动加载并为其创建的图像添加边框。对不起,代码是单一目的,但它采用的技术是可重复的。 Here is the script in action

修改

我不知道cutycapt做了什么。现在好像this question与你想要做的事情有关;将网页转换为PDF作为中间格式可能会使您至少更接近目标。