欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實現(xiàn)的不同圖片居中剪裁生成同一尺寸縮略圖功能示例

 更新時間:2017年09月19日 10:33:07   作者:送人玫瑰手留余香  
這篇文章主要介紹了Java實現(xiàn)的不同圖片居中剪裁生成同一尺寸縮略圖功能,涉及java針對圖片的讀取、屬性修改等相關操作技巧,需要的朋友可以參考下

本文實例講述了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問題

    這篇文章主要介紹了java:無法訪問org.springframework.boot.SpringApplication問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java對象數組的添加、刪除和遍歷代碼示例

    Java對象數組的添加、刪除和遍歷代碼示例

    在Java編程中,我們經常需要對數據結構進行遍歷操作,并根據業(yè)務需求刪除部分元素,這篇文章主要給大家介紹了關于Java對象數組的添加、刪除和遍歷的相關資料,需要的朋友可以參考下
    2024-04-04
  • SpringBoot 簽到獎勵實現(xiàn)方案的示例代碼

    SpringBoot 簽到獎勵實現(xiàn)方案的示例代碼

    這篇文章主要介紹了SpringBoot 簽到獎勵實現(xiàn)方案的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • SpringBoot日志注解與緩存優(yōu)化詳解

    SpringBoot日志注解與緩存優(yōu)化詳解

    這篇文章主要給大家介紹了關于SpringBoot日志注解與緩存優(yōu)化的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-10-10
  • Java實現(xiàn)富文本轉markdown

    Java實現(xiàn)富文本轉markdown

    這篇文章主要為大家詳細介紹了如何通過Java實現(xiàn)富文本轉markdown功能,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考下
    2023-12-12
  • java連接orcale數據庫示例分享

    java連接orcale數據庫示例分享

    這篇文章主要介紹了java連接orcale數據庫示例,需要的朋友可以參考下
    2014-02-02
  • Spring注解之@Lazy注解使用解析

    Spring注解之@Lazy注解使用解析

    這篇文章主要介紹了Spring注解之@Lazy注解使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • springboot統(tǒng)一返回json數據格式并配置系統(tǒng)異常攔截方式

    springboot統(tǒng)一返回json數據格式并配置系統(tǒng)異常攔截方式

    這篇文章主要介紹了springboot統(tǒng)一返回json數據格式并配置系統(tǒng)異常攔截方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Spring Cloud Feign原理詳解

    Spring Cloud Feign原理詳解

    Feign 主要是幫助我們方便進行rest api服務間的調用,本文從Spring Cloud對feign封裝的源碼中去了解其主要實現(xiàn)機制
    2021-06-06
  • java獲取當前時間戳的方法

    java獲取當前時間戳的方法

    本文主要介紹了java獲取當前時間戳的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06

最新評論