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

Кто-нибудь знает, есть ли лучший способ проверить, содержит ли какое-либо изображение (полупрозрачный) пиксель, проходящий через все пиксели, и проверить их альфа-канал?

[pseudo]
    for each pixel in image:
        if pixel.alpha != 0xff:
            return true

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 25 февраля 2011

Вы можете использовать BufferedImage.getType () или же ColorModel.hasAlpha () проверить наличие альфа-канала.

Если есть альфа-канал, вам придется проверить отдельные пиксели.

1 голос
/ 25 февраля 2011

да, есть лучший способ, чем просто итерировать все пиксели.если у вас уже есть мип-карта для альфа-каналов, вы можете проверить сверху вниз на наличие непрозрачных пикселей.

JAI поддерживает это: поместите альфа-канал или все изображение в javax.media.jai.ImageMIPMap , затем итерируйте его уровни сверху вниз, используя getImage (int level)

некоторые ключевые слова для поиска в Google: пирамиды Гаусса-Лапласа, мипмапы

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