Я работаю над службой, которая может выполнять преобразования из файлов gif в mp4 (с ffmpeg
).
Моя проблема заключается в том, что некоторые из картинок имеют видимых прозрачных областей, которые заканчиваютсякак белый цвет, когда я конвертирую их в MP4 видео.Чтобы избежать этой проблемы, я пытаюсь определить, есть ли у gif видимые прозрачные области, поэтому я не буду преобразовывать их в mp4.
Я пытался использовать функцию getImageAlphaChannel()
из imagick.
if ($imagick->getImageAlphaChannel()) {
echo 'transparent image';
} else {
echo 'not transparent image';
}
Эта функция работает правильно, отчеты прозрачны для изображений, как показано ниже;который имеет очевидные видимые прозрачные области.
Но он также отображает прозрачность для изображений, как показано ниже;
![false transparent gif 1](https://i.giphy.com/media/10lqmbjWZg56nu/giphy.gif)
![false transparent gif 2](https://i.giphy.com/media/bQOWaMhRxJkic/giphy.gif)
Этот результат, вероятно, правильный для imagick, возможно, изображения выше прозрачные, но, на мой взгляд, не видно прозрачных областей.
Мой вопрос: как мне правильно определить, если gif-файл имеет видимые прозрачные области или это возможно даже с помощью imagick или любого другого инструмента?