package com.github.xsavikx.androidscreencast.api.image; import java.awt.*; import java.awt.color.ColorSpace; import java.awt.image.ColorModel; import java.awt.image.DataBuffer; import java.awt.image.Raster; /** * Abstract color model for adb RawImage */ public abstract class AbstractRawImageColorModel extends ColorModel { private static final int PIXEL_BITS = 32; private static final boolean HAS_ALPHA = true; private static final boolean IS_ALPHA_PRE_MULTIPLIED = false; private static final int[] BITS = { 8, 8, 8, 8, }; public AbstractRawImageColorModel() { super(PIXEL_BITS, BITS, ColorSpace.getInstance(ColorSpace.CS_sRGB), HAS_ALPHA, IS_ALPHA_PRE_MULTIPLIED, Transparency.TRANSLUCENT, DataBuffer.TYPE_BYTE); } protected abstract int getPixel(byte[] data); protected int getPixel(Object inData) { return getPixel((byte[]) inData); } protected int getMask(int length) { int res = 0; for (int i = 0; i < length; i++) { res = (res << 1) + 1; } return res; } @Override public boolean isCompatibleRaster(Raster raster) { return true; } @Override public int getAlpha(int pixel) { throw new UnsupportedOperationException(); } @Override public int getBlue(int pixel) { throw new UnsupportedOperationException(); } @Override public int getGreen(int pixel) { throw new UnsupportedOperationException(); } @Override public int getRed(int pixel) { throw new UnsupportedOperationException(); } }