Я ищу быстрый и надежный способ узнать, является ли файл PNG, размещенный на HTTP-сервере, полностью прозрачным (ни один пиксель не имеет цвета).
Выполнение этого сценария PHP должно было бы обрабатывать десятки тысяч изображений, поэтому он должен быть максимально быстрым. Я не могу позволить себе ручной PHP для цикла на всех пикселях.
Изображения будут примерно 300x300px. Они будут в формате PNG-8, поэтому прозрачность присутствует, но без альфа-канала. Я могу использовать GD, конечно.
(Если с PHP нет абсолютно никакого способа, я все еще могу переключиться на Node.js)
Полезная библиотека: 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();
Других решений пока нет …