www.pudn.com > img_process_java.zip > ImageResize.java
import java.awt.Image;
import java.io.*;
import javax.media.jai.*;
import com.sun.media.jai.codec.*;
import java.awt.image.RenderedImage;
import java.awt.geom.AffineTransform;
import java.awt.image.renderable.ParameterBlock;
//Usage: java ImageResize images\*.*
public class ImageResize
{
public static void main(String[] args)
{
PlanarImage src, scaled_src;
for(int i = 0; i < args.length; i++)
{
System.out.println(args[i].substring(7));
src = JAI.create("fileload", args[i]);
scaled_src = scaleImage(src);
JPEGEncoder("resized_img/" + args[i].substring(7), scaled_src);
}
}
// Create the image encoder.
static void JPEGEncoder(String new_filename, PlanarImage scaled_src)
{
ImageEncoder encoder = null;
JPEGEncodeParam encodeParam = null;
FileOutputStream out;
out = createOutputStream(new_filename);
encoder = ImageCodec.createImageEncoder("JPEG", out, encodeParam);
try
{
encoder.encode(scaled_src);
out.close();
}
catch (IOException e)
{
System.out.println("IOException at encoding..");
System.exit(1);
}
}
//Scale original image to 100x100
static PlanarImage scaleImage(PlanarImage im)
{
float scale;
PlanarImage new_im = null;
int height = im.getHeight();
int width = im.getWidth();
if(height>width)
scale = (float)100/height;
else
scale = (float)100/width;
//System.out.println("scaling image with scale: " + scale);
if(scale<1)
{
// Create a ParameterBlock and specify the source and parameters
ParameterBlock pb = new ParameterBlock();
pb.addSource(im); // The source image
pb.add(scale); // The xScale
pb.add(scale); // The yScale
pb.add(0.0F); // The x translation
pb.add(0.0F); // The y translation
pb.add(new InterpolationNearest()); // The interpolation
// Create the scale operation
new_im = JAI.create("scale", pb, null);
}
else
new_im = im;
return new_im;
}
//Create the output file stream to store the scaled image
static private FileOutputStream createOutputStream(String outFile)
{
FileOutputStream out = null;
try
{
out = new FileOutputStream(outFile);
}
catch(IOException e)
{
System.out.println("IOException.");
System.exit(1);
}
return out;
}
}//end of class JPEGWriter