用JAI實現TIF(TIFF)格式圖片的裁剪

/*   
Java的圖像處理能力不斷地在增長,但是將一個如PNG或者JPEG格式的文件寫入磁盤或從磁盤讀取這樣的操作仍然比較煩瑣。而現時相對簡單的一種方法是是使用Java Advanced Imaging(JAI)API。以下是使用JAI進行TIF(TIFF)圖片裁剪的一種方法,希望對大家有所幫助:
*/

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();
 }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章