package org.jcodec.scale; import org.jcodec.common.model.ColorSpace; import org.jcodec.common.model.Picture; public class RgbToBgr implements Transform { public void transform(Picture src, Picture dst) { if ((src.getColor() != ColorSpace.RGB && src.getColor() != ColorSpace.BGR) || ( dst.getColor() != ColorSpace.RGB && dst.getColor() != ColorSpace.BGR)) throw new IllegalArgumentException("Expected RGB or BGR inputs, was: " + String.valueOf(src.getColor()) + ", " + String.valueOf(dst.getColor())); byte[] dataSrc = src.getPlaneData(0); byte[] dataDst = dst.getPlaneData(0); for (int i = 0; i < dataSrc.length; i += 3) { byte tmp = dataSrc[i + 2]; dataDst[i + 2] = dataSrc[i]; dataDst[i] = tmp; dataDst[i + 1] = dataSrc[i + 1]; } } }