Salinan kode adalah sebagai berikut:
/**
*
*/
paket com.b510;
impor java.awt.rectangle;
impor java.awt.image.bufferedimage;
impor java.io.file;
impor java.io.fileInputStream;
impor java.io.ioException;
impor java.util.date;
impor java.util.iterator;
impor javax.imageio.imageio;
impor javax.imageio.imagereadparam;
impor javax.imageio.imagereader;
impor javax.imageio.stream.imageInputStream;
/**
* @Date 2012-11-26
* @Author xhw
*
*/
kelas publik imagecut {
/**
* Nama jalur gambar sumber adalah: c: /1.jpg
*/
Private String srcpath = "e: /poool.jpg";
/**
* Nama jalur penyimpanan gambar kliping
*/
Private String Subpath = "E:/Pool_end";
/**
* format gambar jpg
*/
Private Static Final String Image_Form_of_jpg = "jpg";
/**
* format gambar png
*/
Private Static Final String Image_Form_of_png = "png";
/**
* x Koordinat titik geser
*/
int x x;
/**
* CUT POINT Y Koordinat
*/
int y private;
/**
* Lebar titik geser
*/
Lebar int pribadi;
/**
* Tinggi titik geser
*/
Tinggi int pribadi;
Imagecut publik () {
}
Imagecut publik (int x, int y, lebar int, int tinggi) {
this.x = x;
this.y = y;
this.width = lebar;
this.height = tinggi;
}
public static void main (string [] args) melempar pengecualian {
Imagecut imagecut = imagecut baru (134, 0, 366, 366);
imagecut.cut (imagecut.getsrcpath (), imagecut.getsubpath ());
}
/**
* Mengembalikan iterator yang berisi semua imagereader terdaftar saat ini yang mengklaim dapat memecahkan kode format yang ditentukan.
* Parameter: FormatName - Berisi nama format informal.
*
* @param postfix
* File Nama Suffix
* @kembali
*/
Iterator Publik <ImageReeader> getImagereadersByFormatname (string postfix) {
switch (postfix) {
case image_form_of_jpg:
return imageo.getImagereadersByFormatname (image_form_of_jpg);
case image_form_of_png:
return imageo.getImagereadersByFormatname (image_form_of_png);
bawaan:
return imageo.getImagereadersByFormatname (image_form_of_jpg);
}
}
/**
* Tanam gambar dan simpan gambar baru setelah dipangkas.
* Jalur gambar sumber @param srcpath
* @param Subpath memotong jalur penyimpanan gambar
* @Throws IoException
*/
public void cut (string srcpath, string subpath) melempar ioException {
FileInputStream adalah = null;
ImageInputStream IIS = null;
mencoba {
// Baca file gambar
IS = FileInputStream baru (SRCPath);
// Dapatkan nama akhiran file
String postfix = getPostFix (srcpath);
System.out.println ("Format gambar adalah:" + postfix);
/*
* Mengembalikan iterator yang berisi semua imagereader terdaftar saat ini yang mengklaim dapat memecahkan kode format yang ditentukan.
* Parameter: FormatName - Berisi nama format informal.
*/
Iterator <ImageReeader> it = getImagereadersByFormatname (postfix);
Pembaca imagereader = it.next ();
// Dapatkan aliran gambar
IIS = ImageIO.CreateMageInputStream (IS);
/*
* <p> IIS: Baca Source.True: Cari saja Forward </p>.
* Pengaturan ini berarti bahwa gambar yang disertakan dalam sumber input hanya akan dibaca secara berurutan, yang memungkinkan pembaca untuk menghindari cache porsi input data yang berisi gambar yang dibaca sebelumnya.
*/
reader.setInput (IIS, true);
/*
* <p> Kelas yang menggambarkan cara mendekode aliran <p>.
* Stream dalam konteks bingkai mengonversi gambar atau sekelompok gambar. Plugin untuk format gambar tertentu akan diimplementasikan dari imagereader -nya
* Metode GetDefaultreadParam mengembalikan instance ImagereAdparam.
*/
Imagereadparam param = reader.getDefaultreadparam ();
/*
* Area tanaman gambar. Rectangle Menentukan area dalam ruang koordinat, melalui objek persegi panjang
Koordinat (x, y), lebar dan tinggi simpul kiri atas * dapat menentukan area ini.
*/
Persegi panjang rect = persegi panjang baru (x, y, lebar, tinggi);
// Berikan bufferedImage untuk menggunakannya sebagai target untuk decoding data piksel.
param.setsourceregion (rect);
/*
* Gunakan ImageReAdParam yang disediakan untuk membaca objek yang ditentukan dengan mengindeks ImageIndex dan menggunakannya sebagai yang lengkap
* BufferedImage kembali.
*/
BufferedImage Bi = reader.read (0, param);
// Simpan gambar baru
ImageIo.write (BI, PostFix, File Baru (Subpath + "_" + Tanggal Baru (). GetTime () + "." + Postfix));
} Akhirnya {
if (is! = null)
is.close ();
if (iis! = null)
iis.close ();
}
}
/**
* Dapatkan nama akhiran InputFilePath, seperti: "e: /test.pptx" dengan nama akhiran: "pptx" <br>
*
* @param inputFilePath
* @kembali
*/
Public String getPostFix (String InputFilePath) {
return inputFilePath.substring (inputFilePath.LastIndexOf (".") + 1);
}
publik int getHeight () {
tinggi kembali;
}
public void setHeight (int tinggi) {
this.height = tinggi;
}
string publik getsrcpath () {
mengembalikan srcpath;
}
public void setSrcPath (String srcpath) {
this.srcpath = srcpath;
}
string publik getsubpath () {
Return Subpath;
}
public void setSubpath (string subpath) {
this.subpath = subpath;
}
public int getWidth () {
lebar kembali;
}
public void setWidth (int lebar) {
this.width = lebar;
}
publik int getx () {
mengembalikan x;
}
public void setx (int x) {
this.x = x;
}
public int gety () {
mengembalikan y;
}
public void sety (int y) {
this.y = y;
}
}