Как выяснить, если файл изображения (base64) имеет прозрачность? - PullRequest
1 голос
/ 12 декабря 2011

Интересно, как я могу выяснить, применяется ли к изображению эффект прозрачности? Есть ли способ в JavaScript или HTML5? У меня есть изображение в кодировке Base64. Есть ли способ считывания информации о прозрачности (альфа-канал). Например, если я загружаю PNG-изображение, затем конвертирую его в base64, а затем перетаскиваю в html5-canvas, как теперь узнать, активирован ли эффект прозрачности? Большое спасибо okyo

1 Ответ

0 голосов
/ 12 декабря 2011

Когда вы говорите «перетащите его в html5-canvas», я предполагаю, что вы имеете в виду использование элемента изображения со схемой URI «data:». Кроме того, давайте примем это как данность, что вы не хотите писать код JavaScript для анализа файлов изображений.

Вы можете сделать что-то вроде этого псевдокода:

create 2 off-screen canvases
color one opaque white and the other opaque black
draw the image on both of them
call getImageData on each canvas, using the image bounds
compare the image data

Если изображение имеет какие-либо прозрачные или частично прозрачные пиксели, то, по-видимому, два полотна в конечном итоге будут немного отличаться. Единственным исключением может быть, если на изображении включена функция прозрачности, но в любом случае она полностью непрозрачна. Другое было бы, если бы непрозрачные пиксели были только очень немного прозрачными - недостаточно, чтобы изменить белый или черный фон. Но эта техника будет ловить изображения там, где заметна прозрачность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...