Java實現(xiàn)的不同圖片居中剪裁生成同一尺寸縮略圖功能示例
本文實例講述了Java實現(xiàn)的不同圖片居中剪裁生成同一尺寸縮略圖功能。分享給大家供大家參考,具體如下:
因為業(yè)務需要,寫了這樣一個簡單類,希望能幫助對有這方面需要的人,高手莫笑
源碼如下:
package platform.edu.resource.utils; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; /** * 圖片工具類 * @author hjn * @version 1.0 2013-11-26 * */ public class ImageUtil { /** * 圖片等比縮放居中剪裁 * 不管尺寸不等的圖片生成的縮略圖都是同一尺寸,方便用于頁面展示 * @param imageSrc圖片所在路徑 * @param thumbWidth縮略圖寬度 * @param thumbHeight縮略圖長度 * @param outFilePath縮略圖存放路徑 * @throws InterruptedException * @throws IOException */ public static void createImgThumbnail(String imgSrc, int thumbWidth, int thumbHeight, String outFilePath) throws InterruptedException, IOException { File imageFile=new File(imgSrc); BufferedImage image = ImageIO.read(imageFile); Integer width = image.getWidth(); Integer height = image.getHeight(); double i = (double) width / (double) height; double j = (double) thumbWidth / (double) thumbHeight; int[] d = new int[2]; int x = 0; int y = 0; if (i > j) { d[1] = thumbHeight; d[0] = (int) (thumbHeight * i); y = 0; x = (d[0] - thumbWidth) / 2; } else { d[0] = thumbWidth; d[1] = (int) (thumbWidth / i); x = 0; y = (d[1] - thumbHeight) / 2; } File outFile = new File(outFilePath); if (!outFile.getParentFile().exists()) { outFile.getParentFile().mkdirs(); } /*等比例縮放*/ BufferedImage newImage = new BufferedImage(d[0],d[1],image.getType()); Graphics g = newImage.getGraphics(); g.drawImage(image, 0,0,d[0],d[1],null); g.dispose(); /*居中剪裁*/ newImage = newImage.getSubimage(x, y, thumbWidth, thumbHeight); ImageIO.write(newImage, imageFile.getName().substring(imageFile.getName().lastIndexOf(".") + 1), outFile); } }
PS:這里再為大家推薦幾款比較實用的圖片處理工具供大家參考使用:
在線圖片轉換BASE64工具:
http://tools.jb51.net/transcoding/img2base64
ICO圖標在線生成工具:
http://tools.jb51.net/aideddesign/ico_img
在線Email郵箱圖標制作工具:
http://tools.jb51.net/email/emaillogo
在線圖片格式轉換(jpg/bmp/gif/png)工具:
http://tools.jb51.net/aideddesign/picext
更多java相關內容感興趣的讀者可查看本站專題:《Java圖片操作技巧匯總》、《java日期與時間操作技巧匯總》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》及《Java數據結構與算法教程》。
希望本文所述對大家java程序設計有所幫助。
相關文章
java:無法訪問org.springframework.boot.SpringApplication問題
這篇文章主要介紹了java:無法訪問org.springframework.boot.SpringApplication問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08SpringBoot 簽到獎勵實現(xiàn)方案的示例代碼
這篇文章主要介紹了SpringBoot 簽到獎勵實現(xiàn)方案的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08springboot統(tǒng)一返回json數據格式并配置系統(tǒng)異常攔截方式
這篇文章主要介紹了springboot統(tǒng)一返回json數據格式并配置系統(tǒng)異常攔截方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08