java實現(xiàn)圖片裁切的工具類實例
更新時間:2015年11月03日 14:29:13 作者:5iasp
這篇文章主要介紹了java實現(xiàn)圖片裁切的工具類實例,涉及Java針對圖片的讀取、修改等相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了java實現(xiàn)圖片裁切的工具類。分享給大家供大家參考,具體如下:
package com.yanek.util; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Iterator; import javax.imageio.ImageIO; import javax.imageio.ImageReadParam; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; public class ImgCutUtil { /** * @param args */ public static void main(String[] args) { ImgCutUtil.cut(30, 50, 300, 400, "d:/1.jpg", "d:/100.jpg"); } /** * 圖片裁切 * @param x1 選擇區(qū)域左上角的x坐標(biāo) * @param y1 選擇區(qū)域左上角的y坐標(biāo) * @param width 選擇區(qū)域的寬度 * @param height 選擇區(qū)域的高度 * @param sourcePath 源圖片路徑 * @param descpath 裁切后圖片的保存路徑 */ public static void cut(int x1, int y1, int width, int height, String sourcePath, String descpath) { FileInputStream is = null; ImageInputStream iis = null; try { is = new FileInputStream(sourcePath); String fileSuffix = sourcePath.substring(sourcePath .lastIndexOf(".") + 1); Iterator<ImageReader> it = ImageIO .getImageReadersByFormatName(fileSuffix); ImageReader reader = it.next(); iis = ImageIO.createImageInputStream(is); reader.setInput(iis, true); ImageReadParam param = reader.getDefaultReadParam(); Rectangle rect = new Rectangle(x1, y1, width, height); param.setSourceRegion(rect); BufferedImage bi = reader.read(0, param); ImageIO.write(bi, fileSuffix, new File(descpath)); } catch (Exception ex) { ex.printStackTrace(); } finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } is = null; } if (iis != null) { try { iis.close(); } catch (IOException e) { e.printStackTrace(); } iis = null; } } } }
希望本文所述對大家Java程序設(shè)計有所幫助。
相關(guān)文章
GSON實現(xiàn)Java對象的JSON序列化與反序列化的實例教程
GSON是Google開發(fā)并開源的一個Java的JSON轉(zhuǎn)換庫,這里我們將來講解GSON實現(xiàn)Java對象的JSON序列化與反序列化的實例教程,需要的朋友可以參考下2016-06-06springboot之SpringApplication生命周期和事件機制解讀
這篇文章主要介紹了springboot之SpringApplication生命周期和事件機制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06SpringMVC基于阻塞隊列LinkedBlockingQueue的同步長輪詢功能實現(xiàn)詳解
這篇文章主要介紹了SpringMVC基于阻塞隊列LinkedBlockingQueue的同步長輪詢功能實現(xiàn)詳解,本文介紹的也是生產(chǎn)者消費者的一種實現(xiàn),生產(chǎn)者不必是一個始終在執(zhí)行的線程,它可以是一個接口,接受客戶端的請求,向隊列中插入消息,需要的朋友可以參考下2023-07-07基于Springboot疫苗接種行程管理系統(tǒng)的設(shè)計與實現(xiàn)
本文主要介紹了基于Springboot實現(xiàn)的疫苗接種行程管理系統(tǒng)的示例代碼,系統(tǒng)主要實現(xiàn)個人疫苗接種管理、行程管理、病史管理、風(fēng)險地區(qū)管理、核酸檢測報告結(jié)果上報、疫情新聞管理等功能,需要的可以參考一下2022-03-03