Изображение в виде буферизованного изображения Java RescaleOp - PullRequest
3 голосов
/ 08 марта 2012

Кажется, у меня проблема с созданием BufferedImage с прозрачными пикселями, подобными этому:

BufferedImage buff = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB);

и работает нормально, пока я не отфильтрую его через RescaleOp, чтобы затемнить. Когда я делаю это, изображение исчезает. Вот мой полный код, чтобы вы могли видеть, как я его настраиваю:

    BufferedImage buff = new BufferedImage(i.getWidth(null), i.getHeight(null), BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = buff.createGraphics();
    g.drawImage(i, 0, 0, null);
    g.dispose();
    RescaleOp filter = new RescaleOp(lightlevel, 0f, null);
    buff = filter.filter(buff, null);

У меня вопрос: как это исправить, чтобы пиксели буферизованного изображения были затемнены, не влияя на прозрачность?

1 Ответ

2 голосов
/ 08 марта 2012

Вы можете попробовать RescaleOp, который обрабатывает alpha , проиллюстрировано здесь , и использовать тот же lightLevel для всех цветовых компонентов.

...