2012-03-08 3 views
3

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

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); 

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

ответ

2

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

+0

У меня нет такой же точной вещи, кроме без смещения? – MrDrProfessorTyler

+0

Подождите, я не вижу, как это работает. Благодаря! – MrDrProfessorTyler

+0

Добро пожаловать; когда вы будете удовлетворены, вы можете принять этот ответ, щелкнув по [пустой галочке] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) слева. – trashgod

 Смежные вопросы

  • Нет связанных вопросов^_^