Если вы хотите выполнять пиксельные операции над всем изображением, я обнаружил, что каждый раз вызывать метод getRGB () довольно медленно. В этом случае вы можете попытаться получить доступ к фактическому массиву пикселей, содержащему данные изображения, используя что-то вроде:
byte[] pixel_array = ((DataBufferByte)img.getRaster().getDataBuffer()).getData()
Может быть более гибкий способ, который не делает никаких предположений о типе данных массива.