not needed

This commit is contained in:
hns 2001-02-09 18:51:07 +00:00
parent 7ac5ae3331
commit 57c322a273

View file

@ -1,312 +0,0 @@
// JPMTest - test program for the ACME Java pixmap utilities
//
// Copyright (C) 1996 by Jef Poskanzer <jef@acme.com>. 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 AUTHOR 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 AUTHOR 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.
//
// Visit the ACME Labs Java page for up-to-date versions of this and other
// fine Java utilities: http://www.acme.com/java/
package Acme.JPM;
import java.awt.*;
import java.io.*;
import Acme.JPM.Filters.*;
import Acme.JPM.Encoders.*;
import Acme.Widgets.*;
/// Test program for the ACME Java pixmap utilities.
// <P>
// <A HREF="/resources/classes/Acme/JPM/JPMTest.java">Fetch the software.</A><BR>
// <A HREF="/resources/classes/Acme.tar.gz">Fetch the entire Acme package.</A>
public class JPMTest extends Frame
{
private static JPMTest jpmTest;
public static void main( String[] args )
{
if ( args.length != 1 )
{
System.err.println( "usage: JPMTest [filename]" );
System.exit( 1 );
}
jpmTest = new JPMTest( args[0] );
}
private ImageLabel origImageLabel, filt1ImageLabel, filt2ImageLabel;
private Image origImage, filt1Image, filt2Image;
private Choice filt1Choice, filt2Choice, outputChoice;
/// Constructor.
public JPMTest( String fileName )
{
setTitle( "JPMTest" );
GridBagLayout gb = new GridBagLayout();
setLayout( gb );
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.insets = new Insets( 5, 5, 5, 5 );
Panel panel = new Panel();
GridBagLayout gb2 = new GridBagLayout();
panel.setLayout( gb2 );
GridBagConstraints gbc2 = new GridBagConstraints();
gbc2.insets = new Insets( 5, 5, 5, 5 );
Label label = new Label( fileName );
gbc2.gridwidth = 1;
gb2.setConstraints( label, gbc2 );
panel.add( label );
filt1Choice = new Choice();
addChoiceItems( filt1Choice );
gbc2.gridwidth = 1;
gb2.setConstraints( filt1Choice, gbc2 );
panel.add( filt1Choice );
filt2Choice = new Choice();
addChoiceItems( filt2Choice );
gbc2.gridwidth = GridBagConstraints.REMAINDER;
gb2.setConstraints( filt2Choice, gbc2 );
panel.add( filt2Choice );
origImageLabel = new ImageLabel( Acme.GuiUtils.brokenIcon( this ) );
gbc2.gridwidth = 1;
gb2.setConstraints( origImageLabel, gbc2 );
panel.add( origImageLabel );
filt1ImageLabel = new ImageLabel( Acme.GuiUtils.brokenIcon( this ) );
gbc2.gridwidth = 1;
gb2.setConstraints( filt1ImageLabel, gbc2 );
panel.add( filt1ImageLabel );
filt2ImageLabel = new ImageLabel( Acme.GuiUtils.brokenIcon( this ) );
gbc2.gridwidth = GridBagConstraints.REMAINDER;
gb2.setConstraints( filt2ImageLabel, gbc2 );
panel.add( filt2ImageLabel );
gb.setConstraints( panel, gbc );
add( panel );
panel = new Panel();
gb2 = new GridBagLayout();
panel.setLayout( gb2 );
outputChoice = new Choice();
outputChoice.addItem( "GIF" );
outputChoice.addItem( "PPM" );
gbc2.gridwidth = 1;
gb2.setConstraints( outputChoice, gbc2 );
panel.add( outputChoice );
Button button = new Button( "Write" );
gbc2.gridwidth = 1;
gb2.setConstraints( button, gbc2 );
panel.add( button );
button = new Button( "Quit" );
gbc2.gridwidth = GridBagConstraints.REMAINDER;
gb2.setConstraints( button, gbc2 );
panel.add( button );
gb.setConstraints( panel, gbc );
add( panel );
pack();
validate();
show();
origImage = getToolkit().getImage( fileName );
origImageLabel.setImage( origImage );
filt1Choice.select( NONE );
filt2Choice.select( NONE );
filter1();
filter2();
}
private void addChoiceItems( Choice choice )
{
// These items must match the order of the enumeration.
choice.addItem( "NONE" );
choice.addItem( "Shrink 2" );
choice.addItem( "Enlarge 2" );
choice.addItem( "ScaleCopy 0.51" );
choice.addItem( "ScaleCopy 1.99" );
choice.addItem( "Oil" );
choice.addItem( "Smooth 2" );
choice.addItem( "EdgeDetect" );
choice.addItem( "Gamma 2" );
choice.addItem( "Tile 400" );
choice.addItem( "Flip -lr" );
choice.addItem( "Flip -tb" );
choice.addItem( "Flip -cw" );
choice.addItem( "Invert" );
choice.addItem( "Margin" );
choice.addItem( "Shear 30" );
choice.addItem( "Rotate 30" );
}
/// Event handler.
public boolean handleEvent( Event evt )
{
switch ( evt.id )
{
case Event.ACTION_EVENT:
if ( evt.arg.equals( "Quit" ) )
System.exit( 0 );
else if ( evt.arg.equals( "Write" ) )
write();
else if ( evt.target == filt1Choice )
{
filter1();
filter2();
}
else if ( evt.target == filt2Choice )
filter2();
break;
}
return super.handleEvent( evt );
}
// This must match the order of the choice items.
private static final int GIF = 0;
private static final int PPM = 1;
private void write()
{
try
{
ImageEncoder encoder = null;
switch ( outputChoice.getSelectedIndex() )
{
case GIF:
encoder = new GifEncoder( filt2Image.getSource(), System.out );
break;
case PPM:
encoder = new PpmEncoder( filt2Image.getSource(), System.out );
break;
}
encoder.encode();
}
catch ( IOException e )
{
System.err.println( e.toString() );
}
}
// This must match the order of the choice items.
private static final int NONE = 0;
private static final int SHRINK2 = 1;
private static final int ENLARGE2 = 2;
private static final int SCALE051 = 3;
private static final int SCALE199 = 4;
private static final int OIL = 5;
private static final int SMOOTH2 = 6;
private static final int EDGEDETECT = 7;
private static final int GAMMA2 = 8;
private static final int TILE400 = 9;
private static final int FLIPLR = 10;
private static final int FLIPTB = 11;
private static final int FLIPCW = 12;
private static final int INVERT = 13;
private static final int MARGIN = 14;
private static final int SHEAR30 = 15;
private static final int ROTATE30 = 16;
private void filter1()
{
filt1Image = filterImage( filt1Choice.getSelectedIndex(), origImage );
filt1ImageLabel.setImage( filt1Image );
}
private void filter2()
{
filt2Image = filterImage( filt2Choice.getSelectedIndex(), filt1Image );
filt2ImageLabel.setImage( filt2Image );
}
private Image filterImage( int which, Image image )
{
switch ( which )
{
case NONE:
return image;
case SHRINK2:
return JPMUtils.filterImage(
this, new Shrink( image.getSource(), 2 ) );
case ENLARGE2:
return JPMUtils.filterImage(
this, new Enlarge( image.getSource(), 2 ) );
case SCALE051:
return JPMUtils.filterImage(
this, new ScaleCopy( image.getSource(), 0.51 ) );
case SCALE199:
return JPMUtils.filterImage(
this, new ScaleCopy( image.getSource(), 1.99 ) );
case OIL:
return JPMUtils.filterImage(
this, new Oil( image.getSource() ) );
case SMOOTH2:
return JPMUtils.filterImage(
this, new Smooth( image.getSource(), 2 ) );
case EDGEDETECT:
return JPMUtils.filterImage(
this, new EdgeDetect( image.getSource() ) );
case GAMMA2:
return JPMUtils.filterImage(
this, new Gamma( image.getSource(), 2.0 ) );
case TILE400:
return JPMUtils.filterImage(
this, new Tile( image.getSource(), 400, 400 ) );
case FLIPLR:
return JPMUtils.filterImage(
this, new Flip( image.getSource(), Flip.FLIP_LR ) );
case FLIPTB:
return JPMUtils.filterImage(
this, new Flip( image.getSource(), Flip.FLIP_TB ) );
case FLIPCW:
return JPMUtils.filterImage(
this, new Flip( image.getSource(), Flip.FLIP_CW ) );
case INVERT:
return JPMUtils.filterImage(
this, new Invert( image.getSource() ) );
case MARGIN:
return JPMUtils.filterImage(
this, new Margin( image.getSource(), Color.black, 10 ) );
case SHEAR30:
return JPMUtils.filterImage(
this, new Shear( image.getSource(), 30.0 ) );
case ROTATE30:
return JPMUtils.filterImage(
this, new Rotate( image.getSource(), 30.0 ) );
}
return null;
}
}