1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
// lecture image originale
BufferedImage bimg = ImageIO.read( new file("original") );
int width=bimg.getWidth(), height=bimg.getHeight();
// création d'un BufferedImage customisé
ColorSpace cs = new ColorSpace(9999,1) {
@Override public float[] toRGB(float[] colorvalue) {
return new float[] {colorvalue[0],colorvalue[0],colorvalue[0]};
}
@Override public float[] toCIEXYZ(float[] colorvalue) {
return null;
}
@Override public float[] fromRGB(float[] rgbvalue) {
return new float[] {rgbvalue[0]};
}
@Override public float[] fromCIEXYZ(float[] colorvalue) {
return null;
}
};
int[] nBits = {8};
ColorModel colorModel = new ComponentColorModel(cs, nBits, false, true, Transparency.OPAQUE, DataBuffer.TYPE_BYTE);
WritableRaster raster = colorModel.createCompatibleWritableRaster(width,height);
BufferedImage bgray = new BufferedImage(colorModel,raster,false,null);
// copie image originale dans la version custom
bgray.createGraphics().drawImage(bimg, AffineTransform.getTranslateInstance(0, 0), null);
// ... utiliser/modifier/sauvegarder bgray |
Partager