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