this will help you..
further info manojp@dsmsoft.com
import javax.media.jai.ImageLayout;
import java.awt.image.IndexColorModel;
import java.awt.image.SampleModel;
import java.awt.image.RenderedImage;
import java.awt.image.BufferedImage;
import java.awt.image.*;
import javax.media.jai.JAI;
import javax.media.jai.LookupTableJAI;
import javax.media.jai.PlanarImage;
import javax.media.jai.NullOpImage;
import javax.media.jai.OpImage;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageDecoder;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.SeekableStream;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.renderable.ParameterBlock;
import java.util.Vector;
import javax.media.jai.*;
import javax.swing.*;
import javax.swing.event.*;
import com.sun.media.jai.codec.BMPEncodeParam;
import com.sun.media.jai.codec.TIFFEncodeParam;
import com.sun.media.jai.codec.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.Graphics.*;
import java.awt.Graphics2D;
import java.io.*;
import java.io.File;
import java.io.InputStream;
import java.io.IOException;
import java.awt.MediaTracker;
import javax.media.jai.widget.ScrollingImagePanel;
public class zoodemo extends Applet implements Runnable
{
BufferedImage mine;
ImageLayout layout;
PlanarImage image = null;
ScrollingImagePanel panel;
Panel p1;
String filename;
RenderedImage op;
SeekableStream s;
File file;
int width, height;
MediaTracker tracker;
BufferedImage bi;
Image img;
String msg;
ImageLayoutLay;
SeekableStream stream;
String[] names;
ImageDecoder dec;
RenderedImage im;
IndexColorModel icm;
int mapSize;
byte[][] lutData;
int zoom1;
LookupTableJAI lut;
// for zoom
Thread runner;
Image pic;
Image theCanvas;
int zoom;
int Height;
int Width;
int xpos;
int ypos;
int level;
int speed;
int xMove;
int yMove;
int cursorX;
int cursorY;
boolean preload;
Object theFrame;
int cursorType;
// for zoom constructor
public zoodemo()
{
/*Default zoom Level where we can view the full page at the start*/
/*Five levels of zoom in -- on every 5th click the view is reset*/
runner = null;
zoom = 1;
xMove = 0;
yMove = 0;
cursorX = -5000;
cursorY = -5000;
//preload = false;
}
//start stop run for zoom
public void start()
{
if(runner == null)
{
runner = new Thread(this);
runner.start();
}
}
public void stop()
{
if(runner != null)
runner.stop();
runner = null;
}
public void run()
{
do
{
repaint();
try
{
Thread.sleep(10L);/*Speed of the scrolling is controlled lesser the number faster we scroll*/
}
catch(InterruptedException interruptedexception) { }
}
while(true);
}
public void init()
{
// Use the JAI API unless JAI_IMAGE_READER_USE_CODECS is set
//
String picture = getParameter("IMAGE");
System.out.println("name "+ picture);
if(picture == null)
{
System.out.println("Image File not definded");
System.exit(1);
}
String tempS; // Here get the zoom level
if((tempS = getParameter("ZoomLevel")) != null)
{
level = Integer.parseInt(tempS);
if(level < 1)
level = 5;
}
if((tempS = getParameter("PanSpeed")) != null)
{
speed = Integer.parseInt(tempS);
if(speed < 1 || speed > 10)
speed = 6;
}
//try
//{
/*stream = new FileSeekableStream( picture);
names= ImageCodec.getDecoderNames(stream);
dec= ImageCodec.createImageDecoder(names[0], stream, null);
RenderedImage im= dec.decodeAsRenderedImage();*/
System.out.println("inside try");
im = JAI.create("fileload", picture);
System.out.println("after im");
image = PlanarImage.wrapRenderedImage(im);
width = image.getWidth();
height = image.getHeight();
if(image.getColorModel() instanceof IndexColorModel)
{
System.out.println("inside");
//Retrieve the IndexColorModel
IndexColorModel icm = (IndexColorModel)image.getColorModel();
System.out.println("after color model");
//Cache the number of elements in each band of the colormap.
int mapSize = icm.getMapSize();
//Allocate an array for the lookup table data.
byte[][] lutData = new byte[3][mapSize];
// Load the lookup table data from the IndexColorModel.
icm.getReds(lutData[0]);
icm.getGreens(lutData[1]);
icm.getBlues(lutData[2]);
//Create the lookup table object.
LookupTableJAI lut = new LookupTableJAI(lutData);
//Replace the original image with the 3-band RGB image.
int zoom = 2;
image = JAI.create("lookup", image, lut);
System.out.println("if loop ends now");
}
System.out.println("before graphics");
//}
/*catch (IOException e)
{
e.printStackTrace();
System.out.println("inside start method-IO Exception");
//return null;
}
catch(Exception e)
{
e.printStackTrace();
System.out.println("inside start method-Exception");
}*/
if((tempS = getParameter("preload")) != null)
preload = tempS.equals("ON");
else
preload = true;
if((tempS = getParameter("cursor")) != null)
cursorType = Integer.parseInt(getParameter("cursor"));
if(tempS == null || cursorType != 2)
{
Object theFrame = null;
for(theFrame = getParent(); !(theFrame instanceof Frame) && theFrame != null; theFrame = ((Component)theFrame).getParent());
if(theFrame != null)
((Frame)theFrame).setCursor(12);
}
mine =image.getAsBufferedImage();
MediaTracker MTracker = new MediaTracker(this);
MTracker.addImage(mine, 1);
try
{
MTracker.waitForID(1);
}
catch(InterruptedException IE)
{
System.out.println("Cannot load Image");
}
Width = size().width;
Height = size().height;
theCanvas = createImage(Width, Height);
if(preload)
{
for(int z = 2; z <= level; z++)
theCanvas.getGraphics().drawImage(mine, xpos, ypos, Width * z, Height * z, this);
}
xpos = 0;
ypos = 0;
repaint();
}
//over
public void setXPos()
{
xpos = xpos + xMove;
if(xpos > 0)
xpos = 0;
else
if(xpos < -(Width * (zoom - 1)))
xpos = -Width * (zoom - 1);
}
public void setYPos()
{
ypos = ypos + yMove;
if(ypos > 0)
ypos = 0;
else
if(ypos < -(Height * (zoom - 1)))
ypos = -Height * (zoom - 1);
}
public boolean handleEvent(Event evt)
{
switch(evt.id)
{
case 502: // Event.MOUSE_UP
case 504: // Event.MOUSE_EVENT
default:
break;
case 501: // Event.MOUSE_DOWN
if(evt.x > size().width - 130 && evt.x < size().width - 30 && evt.y > size().height - 19)
{
try
{
//getAppletContext().showDocument(new URL("www.dsmsoft.com"), "_blank");
}
// catch(MalformedURLException malformedurlexception) { }
catch(Exception malformedurlexception) { }
break;
}
zoom++;
xpos = xpos - Width / 2;
ypos = ypos - Height / 2;
if(zoom > level)
{
zoom = 1;
xpos = 0;
ypos = 0;
}
break;
case 503: // Event.MOUSE_MOVE
if(evt.x > size().width - 130 && evt.x < size().width - 30 && evt.y > size().height - 19)
{
if(theFrame != null)
((Frame)theFrame).setCursor(12);
}
else
if(theFrame != null)
((Frame)theFrame).setCursor(0);
cursorX = evt.x - 20;
cursorY = evt.y - 20;
if(evt.x > (4 * Width) / 5)
xMove = -Width / ((11 - speed) * 10);
else
if(evt.x < Width / 5)
xMove = Width / ((11 - speed) * 10);
else
xMove = 0;
if(evt.y > (4 * Height) / 5)
{
yMove = -Height / ((11 - speed) * 10);
break;
}
if(evt.y < Height / 5)
yMove = Height / ((11 - speed) * 10);
else
yMove = 0;
break;
case 505: // Event.MOUSE_EXIT
cursorX = -5000;
cursorY = -5000;
xMove = 0;
yMove = 0;
break;
}
return super.handleEvent(evt);
}
//paint section
public void update(Graphics gg)
{
setXPos();
setYPos();
Graphics g = theCanvas.getGraphics();
g.drawImage(mine, xpos, ypos, Width * zoom, Height * zoom, this);
if(cursorType == 2)
{
g.setColor(Color.orange);
g.drawOval(cursorX + 4, cursorY + 4, 20, 20);
g.drawOval(cursorX + 3, cursorY + 3, 22, 22);
g.drawOval(cursorX + 2, cursorY + 2, 24, 24);
g.drawOval(cursorX + 1, cursorY + 1, 26, 26);
g.setFont(new Font("Helvetica", 1, 20));
g.drawString("+", cursorX + 8, cursorY + 21);
}
//g.setColor(Color.blue);
//g.setFont(new Font("TimesRoman", 2, 14));
//g.dispose();
paint(gg);
}
public void paint(Graphics g)
{
g.drawImage(theCanvas, 0, 0, this);
}
}
/*<html>
<applet code="zoodemo.class" width="500" height="500">
<param name="IMAGE" value="guns.tif">
<param name="ZoomLevel" value="5">
<param name="PanSpeed" value="1000">
<param name="Cursor" value="1">
<param name="Preload" value="ON">
</applet>
</html>*/
Hi, i compile this command line:
"javac zoodemo.java -deprecation"
And this error ocurr:
zoodemo.java:42: warning: javax.media.jai.widget.ScrollingImagePanel in javax.me
dia.jai.widget has been deprecated
import javax.media.jai.widget.ScrollingImagePanel;
^
zoodemo.java:49: warning: javax.media.jai.widget.ScrollingImagePanel in javax.me
dia.jai.widget has been deprecated
ScrollingImagePanel panel;
^
zoodemo.java:118: warning: stop() in java.lang.Thread has been deprecated
runner.stop();
^
zoodemo.java:234: warning: setCursor(int) in java.awt.Frame has been deprecated
((Frame)theFrame).setCursor(12);
^
zoodemo.java:249: warning: size() in java.awt.Component has been deprecated
Width = size().width;
^
zoodemo.java:250: warning: size() in java.awt.Component has been deprecated
Height = size().height;
^
zoodemo.java:286: warning: handleEvent(java.awt.Event) in java.awt.Component has
been deprecated
public boolean handleEvent(Event evt)
^
zoodemo.java:296: warning: size() in java.awt.Component has been deprecated
if(evt.x > size().width - 130 && evt.x < size().width - 30 && evt.y > size().hei
ght - 19)
^
zoodemo.java:296: warning: size() in java.awt.Component has been deprecated
if(evt.x > size().width - 130 && evt.x < size().width - 30 && evt.y > size().hei
ght - 19)
^
zoodemo.java:296: warning: size() in java.awt.Component has been deprecated
if(evt.x > size().width - 130 && evt.x < size().width - 30 && evt.y > size().hei
ght - 19)
^
zoodemo.java:318: warning: size() in java.awt.Component has been deprecated
if(evt.x > size().width - 130 && evt.x < size().width - 30 && evt.y > size().hei
ght - 19)
^
zoodemo.java:318: warning: size() in java.awt.Component has been deprecated
if(evt.x > size().width - 130 && evt.x < size().width - 30 && evt.y > size().hei
ght - 19)
^
zoodemo.java:318: warning: size() in java.awt.Component has been deprecated
if(evt.x > size().width - 130 && evt.x < size().width - 30 && evt.y > size().hei
ght - 19)
^
zoodemo.java:321: warning: setCursor(int) in java.awt.Frame has been deprecated
((Frame)theFrame).setCursor(12);
^
zoodemo.java:325: warning: setCursor(int) in java.awt.Frame has been deprecated
((Frame)theFrame).setCursor(0);
^
zoodemo.java:354: warning: handleEvent(java.awt.Event) in java.awt.Component has
been deprecated
return super.handleEvent(evt);
^
16 warnings
How the problem ?
Tks