1 /* Copyright (C) 2005-2011 Fabio Riccardi */ 2 3 package com.lightcrafts.jai; 4 5 import com.lightcrafts.mediax.jai.PlanarImage; 6 import com.lightcrafts.mediax.jai.ImageLayout; 7 import java.awt.image.Raster; 8 import java.awt.image.RenderedImage; 9 import java.awt.image.ComponentColorModel; 10 import java.awt.image.DataBuffer; 11 import java.awt.*; 12 13 public class FrozenImage extends PlanarImage { getsRGBImageLayout(RenderedImage image)14 static ImageLayout getsRGBImageLayout(RenderedImage image) { 15 ImageLayout layout = new ImageLayout(image); 16 layout.setColorModel(new ComponentColorModel(JAIContext.sRGBColorSpace, false, false, 17 Transparency.OPAQUE, DataBuffer.TYPE_BYTE)); 18 return layout; 19 } 20 21 private Raster raster[][]; 22 FrozenImage(RenderedImage image)23 public FrozenImage(RenderedImage image) { 24 this(image, false); 25 } 26 FrozenImage(RenderedImage image, boolean castTosRGB)27 public FrozenImage(RenderedImage image, boolean castTosRGB) { 28 super(castTosRGB ? getsRGBImageLayout(image) : new ImageLayout(image), null, null); 29 raster = new Raster[getNumXTiles()][getNumYTiles()]; 30 for (int x = 0; x < getNumXTiles(); x++) 31 for (int y = 0; y < getNumYTiles(); y++) 32 raster[x][y] = image.getTile(x, y); 33 } 34 getTile(int tileX, int tileY)35 public Raster getTile(int tileX, int tileY) { 36 return raster[tileX][tileY]; 37 } 38 } 39 40 41