การคัดลอกรหัสมีดังนี้:
-
-
-
แพ็คเกจ com.b510;
นำเข้า Java.awt.Rectangle;
นำเข้า java.awt.image.bufferedimage;
นำเข้า Java.io.File;
นำเข้า Java.io.FileInputStream;
นำเข้า java.io.ioException;
นำเข้า java.util.date;
นำเข้า java.util.iterator;
นำเข้า Javax.imageio.imageio;
นำเข้า Javax.imageio.imagereadparam;
นำเข้า Javax.imageio.imagereader;
นำเข้า Javax.imageio.stream.imageInputStream;
-
* @date 2012-11-26
* @author xhw
-
-
ชั้นเรียนสาธารณะ imagecut {
-
* ชื่อเส้นทางภาพต้นฉบับคือ: c: /1.jpg
-
สตริงส่วนตัว srcpath = "e: /poool.jpg";
-
* ชื่อของเส้นทางการจัดเก็บภาพตัด
-
สตริงส่วนตัว subpath = "e:/pool_end";
-
* รูปแบบรูปภาพ jpg
-
สตริงสุดท้ายคงที่ส่วนตัว image_form_of_jpg = "jpg";
-
* รูปแบบรูปภาพ png
-
สตริงสุดท้ายคงที่ส่วนตัว image_form_of_png = "png";
-
* x พิกัดของจุดเฉือน
-
ส่วนตัว int x;
-
* ตัดจุด y พิกัด
-
ส่วนตัว int y;
-
* ความกว้างของจุดเฉือน
-
ความกว้าง int ส่วนตัว;
-
* ความสูงของจุดเฉือน
-
ความสูง int ส่วนตัว;
Public Imagecut () {
-
Imagecut สาธารณะ (int x, int y, ความกว้าง int, ความสูง int) {
this.x = x;
this.y = y;
this.width = ความกว้าง;
this.height = ความสูง;
-
โมฆะคงที่สาธารณะหลัก (สตริง [] args) โยนข้อยกเว้น {
imagecut imagecut = imagecut ใหม่ (134, 0, 366, 366);
imageCut.cut (imagecut.getsrcpath (), imagecut.getsubpath ());
-
-
* ส่งคืนตัววนซ้ำที่มี imagereaders ที่ลงทะเบียนทั้งหมดซึ่งอ้างว่าสามารถถอดรหัสรูปแบบที่ระบุได้
* พารามิเตอร์: FormatName - มีชื่อรูปแบบที่ไม่เป็นทางการ
-
* @param postfix
* ชื่อต่อท้ายไฟล์
* @กลับ
-
Public Iterator <AmageReader> GetImageEdersByFormatName (สตริง postfix) {
สวิตช์ (postfix) {
case image_form_of_jpg:
return imageio.getimagereadersbyformatname (image_form_of_jpg);
case image_form_of_png:
return imageio.getimagereadersbyformatname (image_form_of_png);
ค่าเริ่มต้น:
return imageio.getimagereadersbyformatname (image_form_of_jpg);
-
-
-
* ครอบตัดภาพและบันทึกภาพใหม่หลังจากการครอบตัด
* @param srcpath เส้นทางภาพ
* @param subpath ตัดเส้นทางการจัดเก็บภาพ
* @throws ioexception
-
การตัดโมฆะสาธารณะ (สตริง srcpath, สตริง subpath) พ่น ioexception {
FileInputStream คือ = null;
ImageInputStream IIS = NULL;
พยายาม {
// อ่านไฟล์ภาพ
IS = ใหม่ FileInputStream (SRCPath);
// รับชื่อต่อท้ายของไฟล์
String postfix = getPostFix (srcPath);
System.out.println ("รูปแบบภาพคือ:" + postfix);
-
* ส่งคืนตัววนซ้ำที่มี imagereaders ที่ลงทะเบียนทั้งหมดซึ่งอ้างว่าสามารถถอดรหัสรูปแบบที่ระบุได้
* พารามิเตอร์: FormatName - มีชื่อรูปแบบที่ไม่เป็นทางการ
-
Iterator <AmageReader> it = getImageEdersByFormatName (postfix);
imageReader reader = it.next ();
// รับภาพสตรีม
iis = imageio.createImageInputStream (IS);
-
* <p> iis: อ่านแหล่งที่มา: ค้นหาไปข้างหน้าเท่านั้น </p>
* การตั้งค่านี้หมายความว่ารูปภาพที่รวมอยู่ในแหล่งอินพุตจะถูกอ่านตามลำดับเท่านั้นซึ่งอาจอนุญาตให้ผู้อ่านหลีกเลี่ยงการแคชส่วนอินพุตของข้อมูลที่มีภาพที่อ่านก่อนหน้านี้
-
Reader.setInput (IIS, TRUE);
-
* <p> คลาสที่อธิบายถึงวิธีการถอดรหัสสตรีม <p>
* สตรีมในบริบทของเฟรมแปลงภาพหรือกลุ่มภาพ ปลั๊กอินสำหรับรูปแบบภาพเฉพาะจะถูกนำไปใช้จาก agueereader
* เมธอด getDefaultreadParam ส่งคืนอินสแตนซ์ของ ImageReadParam
-
imageReadParam param = reader.getDefaulTreadParam ();
-
* พื้นที่การเพาะปลูกภาพ สี่เหลี่ยมผืนผ้าระบุพื้นที่ในพื้นที่พิกัดผ่านวัตถุสี่เหลี่ยมผืนผ้า
พิกัด (x, y), ความกว้างและความสูงของจุดยอดซ้ายบนของ * สามารถกำหนดพื้นที่นี้ได้
-
สี่เหลี่ยมผืนผ้าสี่เหลี่ยม = สี่เหลี่ยมใหม่ (x, y, ความกว้าง, ความสูง);
// ระบุ bufferedImage เพื่อใช้เป็นเป้าหมายสำหรับการถอดรหัสข้อมูลพิกเซล
param.setSourceRegion (rect);
-
* ใช้ imageReadParam ที่ให้ไว้เพื่ออ่านวัตถุที่ระบุโดยการจัดทำดัชนี ImageIndex และใช้เป็นสิ่งที่สมบูรณ์
* BufferedImage Return
-
bufferedImage bi = reader.read (0, param);
// บันทึกภาพใหม่
imageio.write (bi, postfix, ไฟล์ใหม่ (subpath + "_" + วันที่ใหม่ (). getTime () + "." + postfix));
} ในที่สุด {
ถ้า (คือ! = null)
is.close ();
ถ้า (iis! = null)
iis.close ();
-
-
-
* รับชื่อต่อท้ายของ inputfilepath เช่น: "e: /test.pptx" ด้วยชื่อต่อท้าย: "pptx" <br>
-
* @param inputfilepath
* @กลับ
-
สตริงสาธารณะ getPostFix (สตริงอินพุต FilePath) {
return inputfilepath.substring (inputFilePath.AlastIndexof (".") + 1);
-
สาธารณะ int getheight () {
ความสูงกลับ;
-
โมฆะสาธารณะ setheight (ความสูง int) {
this.height = ความสูง;
-
สตริงสาธารณะ getSrcPath () {
กลับ srcpath;
-
โมฆะสาธารณะ setsrcpath (String srcpath) {
this.srcpath = srcpath;
-
สตริงสาธารณะ getSubPath () {
กลับ subpath;
-
โมฆะสาธารณะ SetSubPath (Subpath String) {
this.subpath = subpath;
-
สาธารณะ int getWidth () {
ความกว้างกลับ;
-
โมฆะสาธารณะ setwidth (ความกว้าง int) {
this.width = ความกว้าง;
-
สาธารณะ int getx () {
กลับ x;
-
โมฆะสาธารณะ setx (int x) {
this.x = x;
-
สาธารณะ int gety () {
กลับ y;
-
โมฆะสาธารณะ sety (int y) {
this.y = y;
-
-