package org.jcodec.scale;
import org.jcodec.common.model.ColorSpace;
import org.jcodec.common.model.Picture8Bit;
import java.lang.IllegalArgumentException;
/**
* This class is part of JCodec ( www.jcodec.org ) This software is distributed
* under FreeBSD License
*
* @author The JCodec project
*
*/
public class RgbToBgr8Bit implements Transform8Bit {
@Override
public void transform(Picture8Bit src, Picture8Bit 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: " + src.getColor() + ", " + dst.getColor());
}
byte[] dataSrc = src.getPlaneData(0);
byte[] dataDst = dst.getPlaneData(0);
for (int i = 0; i < dataSrc.length; i += 3) {
// src and dst can actually be the same array
byte tmp = dataSrc[i + 2];
dataDst[i + 2] = dataSrc[i];
dataDst[i] = tmp;
}
}
}