最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java高質(zhì)量縮放圖片的示例代碼

 更新時間:2020年09月11日 15:32:04   作者:TianZe  
這篇文章主要介紹了java高質(zhì)量縮放圖片的示例代碼,幫助大家更好的使用Java處理圖片,感興趣的朋友可以了解下

可按照比例縮放,也可以指定寬高

import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import javax.swing.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.Kernel;
import java.awt.image.ConvolveOp;
 
public class ImageUtil {
   /**
   * 
   * @param originalFile 原文件
   * @param resizedFile 壓縮目標(biāo)文件
   * @param newWidth 壓縮后的圖片寬度
   * @param quality 壓縮質(zhì)量(0到1之間,越高質(zhì)量越好)
   * @throws IOException
   */

	public static void resize(File originalFile, File resizedFile,
			int newWidth, float quality) throws IOException {
 
		if (quality > 1) {
			throw new IllegalArgumentException(
					"Quality has to be between 0 and 1");
		}
 
		ImageIcon ii = new ImageIcon(originalFile.getCanonicalPath());
		Image i = ii.getImage();
		Image resizedImage = null;
 
		int iWidth = i.getWidth(null);
		int iHeight = i.getHeight(null);
        //比例縮放
		if (iWidth > iHeight) {
			resizedImage = i.getScaledInstance(newWidth, (newWidth * iHeight)
					/ iWidth, Image.SCALE_SMOOTH);
		} else {
			resizedImage = i.getScaledInstance((newWidth * iWidth) / iHeight,
					newWidth, Image.SCALE_SMOOTH);
		}
        //指定寬高
		Image temp = new ImageIcon(resizedImage).getImage();
		// Create the buffered image.
        BufferedImage bufferedImage = new BufferedImage(temp.getWidth(null),
				temp.getHeight(null), BufferedImage.TYPE_INT_RGB);
		// Copy image to buffered image.
        Graphics g = bufferedImage.createGraphics();
		// Clear background and paint the image.
		g.setColor(Color.white);
		g.fillRect(0, 0, temp.getWidth(null), temp.getHeight(null));
		g.drawImage(temp, 0, 0, null);
		g.dispose();
 
		// Soften.
		float softenFactor = 0.05f;
		float[] softenArray = { 0, softenFactor, 0, softenFactor,
				1 - (softenFactor * 4), softenFactor, 0, softenFactor, 0 };
		Kernel kernel = new Kernel(3, 3, softenArray);
		ConvolveOp cOp = new ConvolveOp(kernel, ConvolveOp.EDGE_NO_OP, null);
		bufferedImage = cOp.filter(bufferedImage, null);
 
		// Write the jpeg to a file.
		FileOutputStream out = new FileOutputStream(resizedFile);
 
		// Encodes image as a JPEG data stream
		JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
 
		JPEGEncodeParam param = encoder
				.getDefaultJPEGEncodeParam(bufferedImage);
 
		param.setQuality(quality, true);
 
		encoder.setJPEGEncodeParam(param);
		encoder.encode(bufferedImage);
	} // Example usage
 
	public static void main(String[] args) throws IOException {
		 File originalImage = new File("C:P7.gif");
		 resize(originalImage, new File("c:P7-0.jpg"),150, 0.7f);
		 resize(originalImage, new File("c:P7-1.jpg"),150, 1f);
	}
}

以上就是java高質(zhì)量縮放圖片的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Java 縮放圖片的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring需要三個級別緩存解決循環(huán)依賴原理解析

    Spring需要三個級別緩存解決循環(huán)依賴原理解析

    這篇文章主要為大家介紹了Spring需要三個級別緩存解決循環(huán)依賴原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Java日期時間使用方法匯總

    Java日期時間使用方法匯總

    這篇文章主要針對Java日期時間使用方法進(jìn)行匯總,感興趣的朋友可以參考一下
    2016-03-03
  • java后臺發(fā)起get請求獲取響應(yīng)數(shù)據(jù)

    java后臺發(fā)起get請求獲取響應(yīng)數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了java后臺發(fā)起get請求獲取響應(yīng)數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Java concurrency之互斥鎖_動力節(jié)點Java學(xué)院整理

    Java concurrency之互斥鎖_動力節(jié)點Java學(xué)院整理

    本文通過示例代碼給大家介紹了Java concurrency之互斥鎖的相關(guān)知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • 修改maven項目端口號的方法

    修改maven項目端口號的方法

    今天小編就為大家分享一篇修改maven項目端口號的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Java實現(xiàn)遞歸刪除菜單和目錄及目錄下所有文件

    Java實現(xiàn)遞歸刪除菜單和目錄及目錄下所有文件

    這篇文章主要為大家詳細(xì)介紹了Java如何實現(xiàn)遞歸刪除菜單和刪除目錄及目錄下所有文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2025-03-03
  • JWT 設(shè)置token過期時間無效的解決

    JWT 設(shè)置token過期時間無效的解決

    這篇文章主要介紹了JWT 設(shè)置token過期時間無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • hibernate 三種狀態(tài)的轉(zhuǎn)換

    hibernate 三種狀態(tài)的轉(zhuǎn)換

    本文主要介紹了hibernate三種狀態(tài)的轉(zhuǎn)換。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • 詳解Spring注解 @Configuration

    詳解Spring注解 @Configuration

    @Configuration 是 Spring 中的一個注解,它用于標(biāo)記一個類為配置類,通過配置類可以定義和組裝 Spring Bean,并且支持高度靈活的配置方式。本問詳細(xì)介紹了Spring注解 @Configuration,感興趣的小伙伴可以參考一下
    2023-04-04
  • Spring多定時任務(wù)@Scheduled執(zhí)行阻塞問題解決

    Spring多定時任務(wù)@Scheduled執(zhí)行阻塞問題解決

    這篇文章主要介紹了Spring多定時任務(wù)@Scheduled執(zhí)行阻塞問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05

最新評論

台山市| 阳东县| 景宁| 安宁市| 巧家县| 同江市| 遂宁市| 西和县| 偃师市| 锡林郭勒盟| 阿克苏市| 正阳县| 阿城市| 石城县| 安阳市| 三亚市| 晋宁县| 泰顺县| 左权县| 共和县| 巴楚县| 临西县| 德江县| 周宁县| 白水县| 临猗县| 拉孜县| 科尔| 衡水市| 曲麻莱县| 府谷县| 林口县| 扶绥县| 库伦旗| 新和县| 论坛| 青浦区| 伊宁县| 北宁市| 融水| 黎平县|