Die Codekopie lautet wie folgt:
/**
*
*/
Paket com.b510;
Import Java.awt.Rectangle;
Import Java.awt.image.BuffenedImage;
Import Java.io.file;
import Java.io.FileInputStream;
importieren java.io.ioException;
import Java.util.date;
Import Java.util.iterator;
import Javax.imageo.imageo;
importieren javax.imageo.imagereadParam;
importieren javax.imageo.imagereader;
import Javax.imageo.stream.imageInputStream;
/**
* @date 2012-11-26
* @Author xhw
*
*/
öffentliche Klasse imagecut {
/**
* Der Name des Quellbildpfades lautet: C: /1.jpg
*/
private String srcpath = "e: /poool.jpg";
/**
* Name des Ausschnitts -Bildspeichers
*/
private String subpath = "e:/pool_end";
/**
* JPG -Bildformat
*/
private statische endgültige String image_form_of_jpg = "jpg";
/**
* PNG -Bildformat
*/
private statische endgültige String image_form_of_png = "png";
/**
* x Koordinate des Scherpunkts
*/
Privat int x;
/**
* Schnittpunkt y Koordinate
*/
privat int y;
/**
* Scherpunktbreite
*/
private intbreite;
/**
* Scherpunkthöhe
*/
private int Höhe;
public imagecut () {
}
öffentliche imagecut (int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = Höhe;
}
public static void main (String [] args) löst Ausnahme {aus {
ImageCut imageCut = neuer ImageCut (134, 0, 366, 366);
imageCut.cut (imageCut.getSrcPath (), imageCut.getSubPath ());
}
/**
* Gibt den Iterator zurück, der alle aktuell registrierten Imagleräer enthält, die behaupten, das angegebene Format zu dekodieren.
* Parameter: Formatname - Enthält informellen Formatnamen (wie "jpeg" oder "tiff") usw.
*
* @param postfix
* Datei -Suffix -Name
* @zurückkehren
*/
public iterator <Amagereader> getImagereAlsByFormatName (String postfix) {
Switch (postfix) {
Fall Image_Form_of_jpg:
return imageio.getImagereAlsByFormatName (image_form_of_jpg);
Fall Image_Form_of_png:
return imageio.getImagereAlsByFormatName (image_form_of_png);
Standard:
return imageio.getImagereAlsByFormatName (image_form_of_jpg);
}
}
/**
* Erzählen Sie das Bild und speichern Sie das neue Bild nach dem Zuschneiden.
* @param srcPath Quellbildpfad
* @Param Subpath Cut Bildspeicherpfad
* @throws ioException
*/
public void cut (String srcPath, String subpath) löst ioException {aus
FileInputStream ist = null;
ImageInputStream iis = null;
versuchen {
// Bilddateien lesen
is = new FileInputStream (srcPath);
// Erhalten Sie den Suffixnamen der Datei
String postfix = getPostFix (srcPath);
System.out.println ("Bildformat ist:" + postfix);
/*
* Gibt den Iterator zurück, der alle aktuell registrierten Imagleräer enthält, die behaupten, das angegebene Format zu dekodieren.
* Parameter: Formatname - Enthält informellen Formatnamen (wie "jpeg" oder "tiff") usw.
*/
Iterator <FileReader> iT = getImagereAlsByFormatName (postfix);
ImageReader reader = it.Next ();
// den Bildstrom erhalten
iis = imageio.createimageInputStream (IS);
/*
* <P> IIS: Quelle lesen.
* Diese Einstellung bedeutet, dass Bilder, die in der Eingabequelle enthalten sind, nur in der Reihenfolge gelesen werden, wodurch der Leser diese Eingangspartionen der Daten, die zuvor Lesebilder enthalten, vermieden werden können.
*/
Reader.SetInput (IIS, True);
/*
* <P> Klasse, in dem beschrieben wird, wie Streams <p> dekodiert werden.
* Streams im Kontext des Rahmens konvertieren ein Bild oder eine Gruppe von Bildern. Das Plugin für ein bestimmtes Bildformat wird aus seinem Imaglerader implementiert
* Die GetDefaultReadParam -Methode gibt eine Instanz von ImagereadParam zurück.
*/
ImageReADparam param = reader.getDefaultreadParam ();
/*
* Bildernte. Rechteck gibt einen Bereich im Koordinatenraum über das Rechteckobjekt an
Die Koordinaten (x, y), die Breite und Höhe des oberen linken Scheitelpunkts von * können diesen Bereich definieren.
*/
Rechteck rechteck = neues Rechteck (x, y, Breite, Höhe);
// Geben Sie ein gepuffertes Diplomage zur Verfügung, um es als Ziel für die Entschlüsselung von Pixeldaten zu verwenden.
Param.SetSourCeregion (rect);
/*
* Verwenden Sie das bereitgestellte ImagereadParam, um das durch Indexierung von ImageIndex angegebene Objekt zu lesen, und verwenden Sie es als vollständig
* BufferedImage Return.
*/
Bufferedimage bi = reader.read (0, param);
// neues Bild speichern
Imageio.write (bi, postfix, neue Datei (Subpath + "_" + neues Datum (). GetTime () + "." + Postfix));
} Endlich {
if (ist! = null)
IS.CLOSE ();
if (iis! = null)
iis.close ();
}
}
/**
* Erhalten Sie den Suffix -Namen von InputFilepath, wie z.
*
* @param InputFilePath
* @zurückkehren
*/
public String getPostFix (String InputFilePath) {
return InputFilepath.substring (InputFilepath.lastIndexof (".") + 1);
}
public int getheight () {
Renditehöhe;
}
public void Seteight (int Höhe) {
this.height = Höhe;
}
public String gotsRcPath () {
srcPath zurückgeben;
}
public void setsrcPath (String srcPath) {
this.srcPath = srcPath;
}
public String getsubpath () {
Subpath zurückgeben;
}
public void setSubPath (String Subpath) {
this.subpath = subpath;
}
public int get width () {
Rückbreite;
}
public void setwidth (int width) {
this.width = width;
}
public int getX () {
Rückkehr x;
}
public void setx (int x) {
this.x = x;
}
public int gety () {
kehre y zurück;
}
public void sety (int y) {
this.y = y;
}
}