Один относительно быстрый способ, но я не знаю, является ли он самым быстрым (и я хотел бы видеть другие ответы), это иметь другую картинку, которую вы никогда не изменяете, и которая всегда «полностью очищается» / «полностью прозрачна». "и затем вы делаете растровую копию, скажем, вы назвали эту копию CLEAR:
imageYouWantToClear.setData( CLEAR.getRaster() );
Обратите внимание, что работа с графикой может быть очень сложной, когда дело доходит до производительности, потому что есть много не очень хорошо документированного поведения. Например, ваши изображения (скажем, CLEAR) могут быть аппаратно-ускоренными, но вы потеряете аппаратное ускорение, как только вы будете использовать мутирующий метод (например, setRgb () ) и было бы очень трудно понять, что вы только что потеряли преимущество аппаратного ускорения.
Я думаю, что лучшее место, где можно найти информацию о предмете BufferedImage, было бы в сообществе / форумах Java-программистов и Java-API.
Кстати, убедитесь, что оба ваших BufferedImage используют режим «совместимости»: TYPE_INT_ARGB может подойти для Windows, но не для OS X и т. Д., Поэтому вы хотите создать их, выполнив что-то вроде:
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
Оу, Закон Ясности болит, спасибо Java;)