2016-10-31 69 views
0

我在寻找一种快速可靠的方法来了解在HTTP服务器上承载的PNG文件是否完全透明(甚至不是一个像素有颜色)。PHP - 检测PNG是否完全透明

这样做的PHP脚本将不得不处理数以万计的图像,因此它必须尽可能快。我无法承受所有像素上的手动PHP循环。

图片大致为300x300px。它们将采用PNG-8格式,因此存在透明度,但没有Alpha通道。 我当然可以使用GD。

(如果是绝对没有办法用PHP我仍然可以切换到Node.js的)

完全透明的图像文件例如 Transparent image

不完全透明的图像文件例如 Not fully transparent image

+0

如果速度是你最关心的问题,像C这样的语言应该是你正在寻找的。节点和PHP都不会在性能方面接近。 – deceze

+0

也许这可以帮助https://github.com/thephpleague/color-extractor – Fky

+0

@deceze肯定,但由PHP或节点调用的C库实际上可以做得很好 – Rayjax

回答

0

有用的库:http://github.com/thephpleague/color-extractor

基本用法:

require 'vendor/autoload.php'; 

use League\ColorExtractor\Client as ColorExtractor; 

$client = new ColorExtractor; 

$image = $client->loadPng('./some/image.png'); 

// Get the most used color hexadecimal codes from image.png 
$palette = $image->extract();