/*
Java的圖像處理能力不斷地在增長(zhǎng),但是將一個(gè)如PNG或者JPEG格式的文件寫(xiě)入磁盤(pán)或從磁盤(pán)讀取這樣的操作仍然比較煩瑣。而現(xiàn)時(shí)相對(duì)簡(jiǎn)單的一種方法是是使用Java Advanced Imaging(JAI)API。以下是使用JAI進(jìn)行TIF(TIFF)圖片裁剪的一種方法,希望對(duì)大家有所幫助:
*/
import java.awt.image.renderable.ParameterBlock;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.TIFFEncodeParam;
public class CropTifPic {
public static void main(String[] args) throws IOException {
float x = 0f;
float y = 0f;
FileSeekableStream stream = new FileSeekableStream("D:\\srcPic.tif");
ParameterBlock pb = (new ParameterBlock());
PlanarImage in = JAI.create("stream", stream);
pb.addSource(in);
pb.add(x);
pb.add((float) (in.getHeight() / 3));
pb.add((float) in.getWidth());
pb.add((float) ((in.getHeight()) * 2 / 3));
PlanarImage out = JAI.create("crop", pb, null);
OutputStream os = new FileOutputStream("D:\\destPic.tif");
TIFFEncodeParam param = new TIFFEncodeParam();
ImageEncoder enc = ImageCodec.createImageEncoder("tiff", os, param);
enc.encode(out);
stream.close();
os.close();
}
}