opj_viewer enabled stateless requests
This commit is contained in:
parent
6a1573c228
commit
1475cabfa0
Binary file not shown.
Binary file not shown.
|
@ -1 +1 @@
|
|||
opj_viewer-20110825.jar
|
||||
opj_viewer-20110916.jar
|
|
@ -43,22 +43,25 @@ public class ImageManager extends JPIPHttpClient
|
|||
public int getOrigWidth(){ return pnmimage.width;}
|
||||
public int getOrigHeight(){ return pnmimage.height;}
|
||||
|
||||
public Image getImage( String j2kfilename, int reqfw, int reqfh)
|
||||
public Image getImage( String j2kfilename, int reqfw, int reqfh, boolean reqcnew)
|
||||
{
|
||||
System.err.println();
|
||||
|
||||
String refcid = ImgdecClient.query_cid( j2kfilename);
|
||||
String refcid = null;
|
||||
byte[] jpipstream;
|
||||
|
||||
if( reqcnew)
|
||||
refcid = ImgdecClient.query_cid( j2kfilename);
|
||||
|
||||
if( refcid == null){
|
||||
String reftid = ImgdecClient.query_tid( j2kfilename);
|
||||
if( reftid == null)
|
||||
jpipstream = super.requestViewWindow( j2kfilename, reqfw, reqfh, true);
|
||||
jpipstream = super.requestViewWindow( j2kfilename, reqfw, reqfh, reqcnew);
|
||||
else
|
||||
jpipstream = super.requestViewWindow( j2kfilename, reftid, reqfw, reqfh, true);
|
||||
jpipstream = super.requestViewWindow( j2kfilename, reftid, reqfw, reqfh, reqcnew);
|
||||
}
|
||||
else
|
||||
jpipstream = super.requestViewWindow( reqfw, reqfh, refcid, true);
|
||||
jpipstream = super.requestViewWindow( reqfw, reqfh, refcid, reqcnew);
|
||||
|
||||
System.err.println( "decoding to PNM image");
|
||||
pnmimage = ImgdecClient.decode_jpipstream( jpipstream, j2kfilename, tid, cid, fw, fh);
|
||||
|
@ -70,11 +73,11 @@ public class ImageManager extends JPIPHttpClient
|
|||
public Image getImage( int reqfw, int reqfh, int reqrx, int reqry, int reqrw, int reqrh)
|
||||
{
|
||||
System.err.println();
|
||||
|
||||
|
||||
byte[] jpipstream = super.requestViewWindow( reqfw, reqfh, reqrx, reqry, reqrw, reqrh);
|
||||
|
||||
System.err.println( "decoding to PNM image");
|
||||
pnmimage = ImgdecClient.decode_jpipstream( jpipstream, cid, fw, fh);
|
||||
pnmimage = ImgdecClient.decode_jpipstream( jpipstream, tid, cid, fw, fh);
|
||||
System.err.println( " done");
|
||||
|
||||
return pnmimage.createROIImage( rx, ry, rw, rh);
|
||||
|
@ -96,7 +99,9 @@ public class ImageManager extends JPIPHttpClient
|
|||
}
|
||||
public void closeChannel()
|
||||
{
|
||||
ImgdecClient.destroy_cid( cid);
|
||||
super.closeChannel();
|
||||
if( cid != null){
|
||||
ImgdecClient.destroy_cid( cid);
|
||||
super.closeChannel();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -55,7 +55,7 @@ public class ImageViewer extends JPanel
|
|||
private Rectangle roirect[] = null;
|
||||
private String roiname[] = null;
|
||||
|
||||
public ImageViewer( String j2kfilename, ImageManager manager)
|
||||
public ImageViewer( String j2kfilename, ImageManager manager, boolean session)
|
||||
{
|
||||
String str;
|
||||
|
||||
|
@ -70,7 +70,7 @@ public class ImageViewer extends JPanel
|
|||
myRL = new ResizeListener(this);
|
||||
|
||||
imgmanager = manager;
|
||||
img = imgmanager.getImage( j2kfilename, vw, vh);
|
||||
img = imgmanager.getImage( j2kfilename, vw, vh, session);
|
||||
|
||||
addMouseListener(myMML);
|
||||
addMouseMotionListener(myMML);
|
||||
|
|
|
@ -38,13 +38,13 @@ public class ImageWindow extends JFrame
|
|||
// private OptionPanel optpanel;
|
||||
private ImageManager imgmanager;
|
||||
|
||||
public ImageWindow( String uri, String j2kfilename)
|
||||
public ImageWindow( String uri, String j2kfilename, boolean session)
|
||||
{
|
||||
super( j2kfilename);
|
||||
|
||||
imgmanager = new ImageManager( uri);
|
||||
|
||||
imgviewer = new ImageViewer( j2kfilename, imgmanager);
|
||||
imgviewer = new ImageViewer( j2kfilename, imgmanager, session);
|
||||
imgviewer.setOpaque(true); //content panes must be opaque
|
||||
|
||||
// optpanel = new OptionPanel( imgmanager, imgviewer);
|
||||
|
@ -71,16 +71,21 @@ public class ImageWindow extends JFrame
|
|||
public static void main(String s[])
|
||||
{
|
||||
String j2kfilename, uri;
|
||||
boolean session;
|
||||
|
||||
if(s.length > 0){
|
||||
uri = s[0];
|
||||
j2kfilename = s[1];
|
||||
if( s.length > 2)
|
||||
session = !s[2].equalsIgnoreCase( "stateless");
|
||||
else
|
||||
session = true;
|
||||
}
|
||||
else{
|
||||
System.out.println("Usage: java -jar opj_viewer.jar HTTP_server_URI imagefile.jp2");
|
||||
System.out.println("Usage: java -jar opj_viewer.jar HTTP_server_URI imagefile.jp2 [stateless/session]");
|
||||
return;
|
||||
}
|
||||
ImageWindow frame = new ImageWindow( uri, j2kfilename);
|
||||
ImageWindow frame = new ImageWindow( uri, j2kfilename, session);
|
||||
|
||||
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
|
|
|
@ -33,17 +33,17 @@ import java.net.*;
|
|||
|
||||
public class ImgdecClient{
|
||||
|
||||
public static PnmImage decode_jpipstream( byte[] jpipstream, String cid, int fw, int fh)
|
||||
public static PnmImage decode_jpipstream( byte[] jpipstream, String tid, String cid, int fw, int fh)
|
||||
{
|
||||
if( jpipstream != null)
|
||||
send_JPIPstream( jpipstream);
|
||||
return get_PNMstream( cid, fw, fh);
|
||||
return get_PNMstream( cid, tid, fw, fh);
|
||||
}
|
||||
|
||||
public static PnmImage decode_jpipstream( byte[] jpipstream, String j2kfilename, String tid, String cid, int fw, int fh)
|
||||
{
|
||||
send_JPIPstream( jpipstream, j2kfilename, tid, cid);
|
||||
return get_PNMstream( cid, fw, fh);
|
||||
return get_PNMstream( cid, tid, fw, fh);
|
||||
}
|
||||
|
||||
public static void send_JPIPstream( byte[] jpipstream)
|
||||
|
@ -91,10 +91,13 @@ public class ImgdecClient{
|
|||
os.writeBytes( "0\n");
|
||||
else
|
||||
os.writeBytes( tid + "\n");
|
||||
os.writeBytes( cid + "\n");
|
||||
if( cid == null)
|
||||
os.writeBytes( "0\n");
|
||||
else
|
||||
os.writeBytes( cid + "\n");
|
||||
os.writeBytes( length + "\n");
|
||||
os.write( jpipstream, 0, length);
|
||||
|
||||
|
||||
byte signal = is.readByte();
|
||||
|
||||
if( signal == 0)
|
||||
|
@ -106,7 +109,7 @@ public class ImgdecClient{
|
|||
}
|
||||
}
|
||||
|
||||
public static PnmImage get_PNMstream( String cid, int fw, int fh)
|
||||
public static PnmImage get_PNMstream( String cid, String tid, int fw, int fh)
|
||||
{
|
||||
PnmImage pnmstream = new PnmImage();
|
||||
try {
|
||||
|
@ -116,7 +119,13 @@ public class ImgdecClient{
|
|||
byte []header = new byte[7];
|
||||
|
||||
os.writeBytes("PNM request\n");
|
||||
os.writeBytes( cid + "\n");
|
||||
if( cid != null)
|
||||
os.writeBytes( cid + "\n");
|
||||
else
|
||||
if( tid != null)
|
||||
os.writeBytes( tid + "\n");
|
||||
else
|
||||
os.writeBytes( "0\n");
|
||||
os.writeBytes( fw + "\n");
|
||||
os.writeBytes( fh + "\n");
|
||||
|
||||
|
|
|
@ -72,7 +72,11 @@ public class JPIPHttpClient
|
|||
if( cid != null)
|
||||
return requestViewWindow( reqfw, reqfh, reqrx, reqry, reqrw, reqrh, cid);
|
||||
else
|
||||
return null;
|
||||
// return null;
|
||||
if( tid != null)
|
||||
return requestViewWindow( null, tid, reqfw, reqfh, reqrx, reqry, reqrw, reqrh, null, false);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public byte[] requestViewWindow( int reqfw, int reqfh, String reqcid)
|
||||
|
|
Loading…
Reference in New Issue