1. 程式人生 > >Java修改圖片png格式透明背景大小解析度

Java修改圖片png格式透明背景大小解析度

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

/**
 * 圖片工具類
 */
public class ImageUtil {

	/**
	 * 裁剪PNG圖片工具類
	 * 
	 * @param fromFile
	 *            原始檔
	 * @param toFile
	 *            裁剪後的檔案
	 * @param outputWidth
	 *            裁剪寬度
	 * @param outputHeight
	 *            裁剪高度
	 * @param proportion
	 *            是否是等比縮放
	 */
	public static void resizePng(File fromFile, File toFile, int outputWidth, int outputHeight,
			boolean proportion) {
		try {
			BufferedImage bi2 = ImageIO.read(fromFile);
			int newWidth;
			int newHeight;
			// 判斷是否是等比縮放
			if (proportion) {
				// 為等比縮放計算輸出的圖片寬度及高度
				double rate1 = ((double) bi2.getWidth(null)) / (double) outputWidth + 0.1;
				double rate2 = ((double) bi2.getHeight(null)) / (double) outputHeight + 0.1;
				// 根據縮放比率大的進行縮放控制
				double rate = rate1 < rate2 ? rate1 : rate2;
				newWidth = (int) (((double) bi2.getWidth(null)) / rate);
				newHeight = (int) (((double) bi2.getHeight(null)) / rate);
			} else {
				newWidth = outputWidth; // 輸出的圖片寬度
				newHeight = outputHeight; // 輸出的圖片高度
			}
			BufferedImage to = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
			Graphics2D g2d = to.createGraphics();
			to = g2d.getDeviceConfiguration().createCompatibleImage(newWidth, newHeight,
					Transparency.TRANSLUCENT);
			g2d.dispose();
			g2d = to.createGraphics();
			@SuppressWarnings("static-access")
			Image from = bi2.getScaledInstance(newWidth, newHeight, bi2.SCALE_AREA_AVERAGING);
			g2d.drawImage(from, 0, 0, null);
			g2d.dispose();
			ImageIO.write(to, "png", toFile);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 測試
	 */
	public static void main(String[] args) throws Exception {
		File fromFile = new File("c:/1.png");
		File toFile = new File("c:/2.png");
		resizePng(fromFile, toFile, 100, 100, false);
	}
}

相關推薦

Java修改圖片png格式透明背景大小解析度

import java.awt.Graphics2D; import java.awt.Image; import java.awt.Transparency; import java.awt.image.BufferedImage; import java.io.File

製作png格式透明圖片的簡易方法

photoshp之類的專業軟體太複雜,其實,製作透明圖示有比較簡易的方法,用PowerPoint或者國產的WPS演示就可以搞定。 以WPS演示為例,先開啟一張圖片,此時可以明顯看出,圖片是白色背景,並不透明。 然後,單擊圖片,頂部的工具欄裡面出現了"設定透明色"選項,單

windows下用Python把pdf檔案轉化為圖片(png格式)

最近工作中需要把pdf檔案轉化為圖片,想用python來實現,於是在網上找啊找啊找啊找,找了半天,倒是找到一些程式碼。 1、第一個找到的程式碼,我試了一下好像是反了,只能實現把圖片轉為pdf,而不能

php 縮放gif和png透明背景變成黑色的解決方法

工作中需要縮放一些png、gif圖然後在去Imagecopymerge,可是發現使用了imagecreatetruecolor和imagecopyresampled後發現本來透明的背景圖變成了黑色。 $img = imagecreatetruecolor(

Java調整圖片大小合併PNG圖片生成ICON(保持背景透明)

1.重新調整圖片到合適尺寸(有壓縮圖片功能) /** * * 功能描述: <br> * 〈調整影象到固定大小〉 * * @param srcImageFile 源影象檔案地址

圖片新增水印【png格式新增水印後背景保持透明

package com.solex.waterPrint; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; i

Java實現圖片(jpg/png)轉成TIF格式(300dpi)踩坑筆記

一、TIF/TIFF介紹 引用百度百科的一句話總結: 標籤影象檔案格式(Tag Image File Format,簡寫為TIFF)是一種靈活的點陣圖格式,主要用來儲存包括照片和藝術圖在內的影象。 二、轉換TIF所需要的jar包 需要3個jar包: jai_

Python PIL.Image之修改圖片背景透明

------------------------------------------------語法基礎------------------------------------------------ import PIL.Image as Image           

java 新增背景圖片(可根據視窗大小自動調整顯示圖片

主題:新增背景圖片 有時候想給背景新增圖片,可是隻顯示了圖片的一部分,是不是很納悶啊!那就看看下面的程式吧!   java程式碼 import java.awt.*; import javax.swing.*; public class Samp extends JF

Python PIL.Image之修改圖片背景透明

------------------------------------------------語法基礎------------------------------------------------ import PIL.Image as Image      &

C# png格式影象轉jpg時透明背景變為黑色問題

Image img = Image.FromFile(filename); // Assumes myImage is the PNG you are converting using (var b = new Bitmap(img.Width, img.Height))

解決IE6中PNG背景透明方法 解決PNG圖片在IE6中背景透明方法

1、解決PNG圖片在IE6中背景不透明的CSS與JS程式碼 -  TOP JS程式碼  function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6. { var arVersion = navigator

php 壓縮各格式圖片,處理png格式圖片背景黑色問題

    //壓縮圖片 //$srcFile 檔名 //$percent壓縮比 //$quality圖片質量     function pictumb($srcFile,$percent,$quality){         $dstFile = $srcFile;//保留名

解決java壓縮圖片透明背景變黑色的問題

public static BufferedImage resize(int faceWidth,BufferedImage srcImg,HttpServletRequest request) throws IOException{                  

Python 圖形處理庫PIL批量修改圖片大小格式

關於PIL庫的一些概念 pil能處理的圖片型別 pil可以處理光柵圖片(畫素資料組成的的塊)。通道 一個圖片可以包含一到多個數據通道,如果這些通道具有相同的維數和深度,Pil允許將這些通道進行疊加模式 1  1位畫素,黑和白,存成8位的畫素 L  8位畫素,黑白 P  8位畫素,使用調色盤對映到任何其他

Java 修改編碼格式的幾種方式

格式 text cnblogs 修改 .com pac 方式 src -1 1、工作空間 workspase Window→Preferences→General→Workspace→Text file encoding→other→UTF-8 2、項目編碼格式 右鍵項目

Python批量修改圖片格式和尺寸

click alias cli 項目 重新 ide urllib 文本 直接 Python批量修改圖片格式和尺寸 備註: 1.導入了PIL庫,是處理圖片用的,很強大; 2.導入了的win32庫,是判斷隱藏文件用的,我們的項目需要刪除隱藏文件,不需要的可以

java圖片格式轉換

圖片格式轉換package fileTest; import java.awt.Color; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Arra

怎樣將PNG格式圖片轉成PDF格式

都知道我們經常在網上看到的圖片雖然有的看起來是一樣,但是右擊檢視圖片的屬性都是不一樣的。在這裡小編問大家一個問題,你們知道如何將一般圖片的格式轉換=成PDF格式嗎?就拿PNG轉PDF格式來說,可能大部分人都不知道如何進行解決的。那下面不妨看看小編是如何操作的!1:在電腦桌面新建一個資料夾取名為PNG圖片,然後

如何將CAD圖紙轉換成png格式圖片

eee 鼠標 col 點擊下載 CAD轉換器 菜單欄 對話框 如何 選項 如何將CAD圖紙轉換成png格式的圖片?在前幾天小編給大家分享過怎麽把CAD圖紙轉換成jpg格式的圖紙,小夥伴們都已經知道如何來操作了,但是今天小編來和大家分享的就是如何將CAD圖紙轉換成png格式的