Создание переключателя цветового канала, который принимает BufferedImage, и применяет изменения без определения, все случаи, за исключением работы RGB. Проблема возникает при попытке применить переупорядочение RGB на уже переупорядоченное изображение, то есть я переключаю изображение на GBR, а затем хочу изменить его на RGB. Я также попытался изменить BufferedImage на тип-эксплуатизм (специально type.int_argb), чтобы увидеть, было ли проблема с использованием CopyData (NULL), что делает пиксели невыписными, но это ничего не изменило. У кого -нибудь есть идеи? < /P>
public BufferedImage apply(BufferedImage input) {
BufferedImage output = new BufferedImage(input.getColorModel(), input.copyData(null), input.isAlphaPremultiplied(), null);
for (int y = 0; y < input.getHeight(); ++y) {
for (int x = 0; x < input.getWidth(); ++x) {
int argb = input.getRGB(x, y);
int a = (argb & 0xFF000000) >>> 24;
int r = (argb & 0x00FF0000) >> 16;
int g = (argb & 0x0000FF00) >> 8;
int b = (argb & 0x000000FF);
switch (orderType) {
case GBR:
argb = (a
Подробнее здесь: https://stackoverflow.com/questions/795 ... er-after-i