Listing 3: Extracting a raster from an array of pixels.


Listing-ul RasterFromPixelArray.java

import java.awt.*;

import java.awt.image.*;

 

class ExtractingRaster extends Frame{

 

BufferedImage BIR=null;  
//the BufferedImage used for drawing raster on screen

ColorModel CM=null; 
//ColorModel object

 

//the array of pixels

static final byte[] ICM={

                       0,2,2,2,2,0,0,3,4,3,4,3,4,3,4,3,4,3,0,0,2,2,2,2,0,     

                       0,2,2,2,2,0,0,4,3,4,3,4,3,4,3,4,3,4,0,0,2,2,2,2,0,     

                       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,     

                       0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,

                       7,7,0,0,0,1,5,5,5,5,5,5,5,5,5,5,5,5,5,1,0,0,0,7,7,

                       7,7,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,7,7,

                       7,7,0,0,0,0,0,0,0,0,1,1,6,1,1,0,0,0,0,0,0,0,0,7,7,                      

                       7,7,0,0,0,0,0,0,0,0,1,1,6,1,1,0,0,0,0,0,0,0,0,7,7,                       

                       7,7,0,0,0,0,0,0,0,0,1,1,6,1,1,0,0,0,0,0,0,0,0,7,7,                       

                       7,7,0,0,0,0,0,0,0,0,1,1,6,1,1,0,0,0,0,0,0,0,0,7,7,                       

                       0,0,0,0,0,0,0,0,0,0,1,1,6,1,1,0,0,0,0,0,0,0,0,0,0,                       

                       0,0,0,0,0,0,0,0,0,0,1,1,6,1,1,0,0,0,0,0,0,0,0,0,0,                       

                       0,1,1,1,1,1,0,0,0,0,1,1,6,1,1,0,0,0,0,0,0,0,0,0,0,

                       0,1,1,1,1,1,0,0,0,0,1,1,6,1,1,0,0,0,0,0,0,0,0,0,0,

                       0,1,1,1,1,1,0,0,0,0,1,1,6,1,1,0,0,0,0,0,0,0,0,0,0,

                       0,1,1,1,1,1,0,0,0,1,1,1,6,1,1,0,0,0,0,0,0,0,0,0,0,

                       0,1,1,1,1,1,1,1,1,1,1,1,6,1,1,0,0,0,0,0,0,0,0,0,0,

                       0,0,1,1,1,1,1,1,1,1,1,1,6,1,1,1,0,0,0,0,0,0,0,0,0,

                       0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,

                       0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,

                       0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,

                       0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,

                       1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,

                       1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,

                       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

                      };

                      

 

    public ExtractingRaster(String title)

           {

           super(title);

           }

 

    void init()

           {       

           setLayout(null);

           setSize(100,100);  

           setVisible(true);

           }           

   

   //defining an index color model

   private IndexColorModel indexCM()

           {                                 

           byte[]r={(byte)255,      (byte)255,      (byte)0,      (byte)0,      (byte)0,      (byte)255,      (byte)128,      (byte)255};

           byte[]g={(byte)0,          (byte)255,      (byte)0,      (byte)255, (byte)0,      (byte)255,      (byte)128,      (byte)200};

           byte[]b={(byte)0,          (byte)255,       (byte)0,     (byte)0,      (byte)255, (byte)0,           (byte)128,      (byte)0};

           

           return new IndexColorModel(2,8,r,g,b);

           }

                      

    void extracting()

           {            

           //ColorModel

        CM=indexCM();

      

           //DataBuffer

           DataBuffer DB=new DataBufferByte(ICM,(25*25),0);

           

           //SampleModel

          int[] BM=new int[]{(byte)0xf};

          SampleModel SM=new SinglePixelPackedSampleModel(DataBuffer.TYPE_BYTE,25,25,BM);                      

                      

           //Raster           

           Point P=new Point(0,0);      
 
           WritableRaster R=Raster.createWritableRaster(SM,DB,P); 

          

           BIR=new BufferedImage(CM,R,false,null);         

           }

            

public void paint(Graphics g)

        {     

        g.drawImage(BIR,50,50,this);                      

       }     

  }

 

public class RasterFromPixelArray{

       public static void main(String[] args)

              {

              ExtractingRaster t=new ExtractingRaster("JavaTile");

              t.extracting();

              t.init();

              }

} 

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.