我的网站必须从图片中读取多达50,000个单独的像素。我需要一种方法来快速完成这项工作。现在,以22,000像素单独读取每个像素需要大约10秒钟。我知道GD不是最好的方法。什么PHP图像库是在短时间内读取大量像素的最快方法?
答案 0 :(得分:1)
您可以尝试Imagick。虽然我不确定它是否真的会更快。这是一个例子:
<?php
$imagick = new Imagick("my_image.jpeg");
$iterator = $imagick->getPixelIterator();
foreach($iterator as $row => $pixels) {
foreach ($pixels as $column => $pixel) {
// Do something with $pixel
}
$iterator->syncIterator();
}
?>
答案 1 :(得分:1)
您可以使用GraphicsMagick。
从他们的文件:
GraphicsMagick是图像处理的瑞士军刀。由 28.2K物理线路(根据David A. Wheeler的SLOCCount) 基本包中的源代码(或964K包括第三方 它提供了一个强大而有效的工具集合 支持读取,写入和操作图像的库 超过88种主要格式,包括DPX,GIF,JPEG等重要格式 JPEG-2000,PNG,PDF,PNM和TIFF。图像处理是多线程的(参见多线程基准测试 结果)使用OpenMP使CPU绑定任务线性缩放为 处理器核心已添加。 OpenMP支持需要编译 GCC 4.2(或更高版本),或使用任何至少支持的C编译器 OpenMP 2.0规范。
它是在2002年从ImageMagick的源代码中派生出来的。它有一个名为GMagick的pecl php扩展,并且比命令行执行图像处理操作要快得多,而且比ImageMagick快。
更新: GraphicsMagick比ImageMagick更快并不意味着GMagick比Imagick更好。图书馆的选择取决于您的要求。这里有一个关于这个主题的好答案:https://stackoverflow.com/a/5282269/199593
答案 2 :(得分:0)
Gmagick是一个扩展程序,可以很容易地使用GraphicsMagick,它本身就是ImageMagick的一个分支。
他们声称速度更快,但我自己没有使用它。