summaryrefslogtreecommitdiff
path: root/applications/jpip/util/opj_viewer/src/ImageViewer.java
diff options
context:
space:
mode:
authorMathieu Malaterre <mathieu.malaterre@gmail.com>2012-09-28 08:11:41 +0000
committerMathieu Malaterre <mathieu.malaterre@gmail.com>2012-09-28 08:11:41 +0000
commitd518970039a19a2a9b6d2bdd592cc88a43897bbb (patch)
tree57bac2cf7e63e9352228231062763baac627563c /applications/jpip/util/opj_viewer/src/ImageViewer.java
parent8363a6ab1e031bb4b2e40a92e56efd40fdab1aa1 (diff)
[trunk] Start FolderReorgProposal task
Update issue 177
Diffstat (limited to 'applications/jpip/util/opj_viewer/src/ImageViewer.java')
-rw-r--r--applications/jpip/util/opj_viewer/src/ImageViewer.java266
1 files changed, 0 insertions, 266 deletions
diff --git a/applications/jpip/util/opj_viewer/src/ImageViewer.java b/applications/jpip/util/opj_viewer/src/ImageViewer.java
deleted file mode 100644
index 163193b9..00000000
--- a/applications/jpip/util/opj_viewer/src/ImageViewer.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * $Id$
- *
- * Copyright (c) 2002-2011, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
- * Copyright (c) 2002-2011, Professor Benoit Macq
- * Copyright (c) 2010-2011, Kaori Hagihara
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import java.awt.image.*;
-import java.awt.geom.*;
-import java.net.URL;
-import javax.swing.border.*;
-import java.util.*;
-import java.io.*;
-
-public class ImageViewer extends JPanel
-{
- private ImageManager imgmanager;
- private int vw, vh;
- private int iw, ih;
- private int selected = 0;
- private Image img;
-
- private String cmdline = new String();
- private boolean fullRefresh = false;
- private Point offset = new Point(0,0);
- private Rectangle rect = new Rectangle();
- private Rectangle roirect[] = null;
- private String roiname[] = null;
-
- public ImageViewer( String j2kfilename, ImageManager manager, boolean session, boolean jppstream, int aux)
- {
- String str;
- MML myMML;
-
- this.setSize( 170, 170);
- Dimension asz = this.getSize();
-
- vw = asz.width;
- vh = asz.height;
-
- setBackground(Color.black);
- myMML = new MML(this);
-
- imgmanager = manager;
-
- img = imgmanager.getImage( j2kfilename, vw, vh, session, aux, jppstream, !jppstream);
-
- addMouseListener(myMML);
- addMouseMotionListener(myMML);
- addComponentListener( new ResizeListener(this));
- }
-
- public Image getImage()
- {
- return img;
- }
-
- public void zoomIn()
- {
- roirect = null;
- roiname = null;
-
- double scalex = (double)vw/(double)rect.width;
- double scaley = (double)vh/(double)rect.height;
-
- int fw = (int)(imgmanager.getFw()*scalex);
- int fh = (int)(imgmanager.getFh()*scaley);
- int rx = (int)((imgmanager.getRx()+rect.x)*scalex);
- int ry = (int)((imgmanager.getRy()+rect.y)*scaley);
-
- img = imgmanager.getImage( fw, fh, rx, ry, vw, vh);
-
- rect.x = rect.y = rect.width = rect.height = 0;
-
- selected = 0;
- fullRefresh = true;
- repaint();
- }
-
- public void enlarge()
- {
- roirect = null;
- roiname = null;
-
- Dimension asz = this.getSize();
-
- vw = asz.width;
- vh = asz.height;
-
- double scalex = vw/(double)imgmanager.getRw();
- double scaley = vh/(double)imgmanager.getRh();
-
- int fw = (int)(imgmanager.getFw()*scalex);
- int fh = (int)(imgmanager.getFh()*scaley);
- int rx = (int)(imgmanager.getRx()*scalex);
- int ry = (int)(imgmanager.getRy()*scaley);
-
- img = imgmanager.getImage( fw, fh, rx, ry, vw, vh);
-
- fullRefresh = true;
- repaint();
- }
-
- public void setSelected(int state)
- {
- roirect = null;
- roiname = null;
-
- if (state != selected) {
-
- selected = state;
- repaint();
- }
- }
-
- public boolean isInsideRect(int x, int y)
- {
- return rect.contains(x - offset.x, y - offset.y);
- }
-
- public void setRGeom(int x1, int y1, int x2, int y2)
- {
- rect.x = Math.min(x1,x2) - offset.x;
- rect.y = Math.min(y1,y2) - offset.y;
- rect.width = Math.abs(x2-x1);
- rect.height = Math.abs(y2-y1);
- }
-
- // public void annotate( JP2XMLparser.ROIparams roi[])
- // {
- // int numofroi = roi.length;
-
- // roirect = new Rectangle [numofroi];
- // roiname = new String [numofroi];
-
- // double scale_x = imgmanager.getFw()/(double)imgmanager.getOrigWidth();
- // double scale_y = imgmanager.getFh()/(double)imgmanager.getOrigHeight();
- // int rx = imgmanager.getRx();
- // int ry = imgmanager.getRy();
- // int rw = imgmanager.getRw();
- // int rh = imgmanager.getRh();
-
- // for( int i=0; i<numofroi ; i++){
- // int x = (int)(roi[i].x*scale_x) - rx;
- // int y = (int)(roi[i].y*scale_y) - ry;
- // int w = (int)(roi[i].w*scale_x);
- // int h = (int)(roi[i].h*scale_y);
- // if( 0<=x && 0<=y && x+w<=rw && y+h<=rh){ // can be optimized
- // roirect[i] = new Rectangle( x, y, w, h);
- // roiname[i] = new String( roi[i].name);
- // }
- // else{
- // roirect[i] = null;
- // roiname[i] = null;
- // }
- // }
- // repaint();
- // }
-
- public boolean hasAnnotation()
- {
- if( roirect == null)
- return false;
- else
- return true;
- }
-
- public boolean isInsideROIRect(int x, int y)
- {
- for( int i=0; i<roirect.length; i++)
- if( roirect[i] != null)
- if( roirect[i].contains(x - offset.x, y - offset.y)){
- rect = roirect[i];
- return true;
- }
- return false;
- }
-
- public void paint(Graphics g)
- {
- BufferedImage bi;
- Graphics2D big;
- Graphics2D g2 = (Graphics2D) g;
-
- if (fullRefresh) {
- g2.clearRect(0, 0, vw, vh);
- fullRefresh = false;
- }
- g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON);
- g2.setRenderingHint(RenderingHints.KEY_RENDERING,
- RenderingHints.VALUE_RENDER_QUALITY);
-
- offset.x = 0;
- offset.y = 0;
-
- iw = img.getWidth(this);
- ih = img.getHeight(this);
-
- bi = new BufferedImage( iw, ih, BufferedImage.TYPE_INT_RGB);
- big = bi.createGraphics();
-
- big.drawImage(img, 0, 0, this);
- big.setPaint(Color.red);
- if ((rect.width > 0) && (rect.height > 0))
- big.draw(rect);
-
- if( roirect != null){
- for( int i=0; i<roirect.length; i++)
- if( roirect[i] != null){
- big.draw( roirect[i]);
- big.drawString( roiname[i], roirect[i].x+3, roirect[i].y+roirect[i].height*2/3);
- }
- }
- if (selected == 1)
- shadeExt(big, 0, 0, 0, 64);
- else if (selected == 2) {
- shadeExt(big, 0, 0, 0, 255);
- selected = 1;
- }
- g2.drawImage(bi, offset.x, offset.y, this);
- }
-
- private void shadeRect(Graphics2D g2, int r, int g, int b, int a)
- {
- g2.setPaint(new Color(r, g, b, a));
- g2.fillRect(rect.x + 1, rect.y + 1, rect.width - 1, rect.height - 1);
- }
-
- private void shadeExt(Graphics2D g2, int r, int g, int b, int a)
- {
- g2.setPaint(new Color(r, g, b, a));
- g2.fillRect(0, 0, iw, rect.y); /* _N_ */
- g2.fillRect(rect.x + rect.width + 1, rect.y,
- iw - rect.x - rect.width - 1, rect.height + 1); /* E */
- g2.fillRect(0, rect.y, rect.x, rect.height + 1); /* W */
- g2.fillRect(0, rect.y + rect.height + 1,
- iw, ih - rect.y - rect.height - 1); /* _S_ */
- }
-}