Php 从图像中读取像素的最快方法
我有一个网站,必须读取多达50000个人像素的图像。我需要一个快速的方法。现在,以22000像素的速度单独读取每个像素几乎需要10秒。我知道GD不是最好的方法。哪种PHP图像库是在短时间内读取大量像素的最快方法?您可以试试。虽然我不确定它是否真的会更快。下面是一个例子:Php 从图像中读取像素的最快方法,php,image-processing,gd,Php,Image Processing,Gd,我有一个网站,必须读取多达50000个人像素的图像。我需要一个快速的方法。现在,以22000像素的速度单独读取每个像素几乎需要10秒。我知道GD不是最好的方法。哪种PHP图像库是在短时间内读取大量像素的最快方法?您可以试试。虽然我不确定它是否真的会更快。下面是一个例子: <?php $imagick = new Imagick("my_image.jpeg"); $iterator = $imagick->getPixelIterator(); foreach($iterator
<?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();
}
?>
是一个易于使用的扩展,它本身就是ImageMagick的一个分支
他们说速度更快,但我自己没用过。你可以用
根据他们的文件:
GraphicsMagick是图像处理的瑞士军刀。组成
282K条物理线路(根据David A.Wheeler的SLOCCount)
基本包中的源代码(或964K,包括第三方
库)它提供了强大而高效的工具和
支持在中读取、写入和操作图像的库
超过88种主要格式,包括DPX、GIF、JPEG等重要格式,
JPEG-2000、PNG、PDF、PNM和TIFF
图像处理是多线程的(请参阅多线程基准测试)
结果)使用OpenMP,使CPU限制的任务线性扩展为
添加了处理器内核。OpenMP支持需要使用
GCC 4.2(或更高版本),或使用至少支持
OpenMP 2.0规范
它来源于ImageMagick 2002年的源代码。它有一个名为pecl-php的扩展,在从命令行执行图像处理操作时比ImageMagick快得多
更新:GraphicsMagick比ImageMagick快并不意味着GMagick比Imagick好。图书馆的选择取决于您的要求。关于这个问题,这里有一个很好的答案:“PHP”和“fast”不能在同一句话中共存。。。第一个问题是:你将如何处理这些像素?我无法想象PHP能够以任何合理的速度加载50kx3字节,然后再对它们进行操作。。。您可能希望将整个过程推迟到C进程。我提供了一个纯PHP的答案,在我的机器上用大约3.6秒的时间读取一个6.5像素的图像,这个速度比你的测试快了大约800倍,对我来说似乎进入了合理的领域,尽管不可否认,它并没有将相似与相似进行比较。