圖片疊加效果Java代碼實現(xiàn)
本文實例為大家分享了Java實現(xiàn)圖片疊加效果展示的具體代碼,供大家參考,具體內(nèi)容如下
import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class NewImageUtils { /** * * @Title: 構(gòu)造圖片 * @Description: 生成水印并返回java.awt.image.BufferedImage * @param file * 源文件(圖片) * @param waterFile * 水印文件(圖片) * @param x * 距離右下角的X偏移量 * @param y * 距離右下角的Y偏移量 * @param alpha * 透明度, 選擇值從0.0~1.0: 完全透明~完全不透明 * @return BufferedImage * @throws IOException */ public static BufferedImage watermark(File file, File waterFile, int x, int y, float alpha) throws IOException { // 獲取底圖 BufferedImage buffImg = ImageIO.read(file); // 獲取層圖 BufferedImage waterImg = ImageIO.read(waterFile); // 創(chuàng)建Graphics2D對象,用在底圖對象上繪圖 Graphics2D g2d = buffImg.createGraphics(); int waterImgWidth = waterImg.getWidth();// 獲取層圖的寬度 int waterImgHeight = waterImg.getHeight();// 獲取層圖的高度 // 在圖形和圖像中實現(xiàn)混合和透明效果 g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha)); // 繪制 g2d.drawImage(waterImg, x, y, waterImgWidth, waterImgHeight, null); g2d.dispose();// 釋放圖形上下文使用的系統(tǒng)資源 return buffImg; } /** * 輸出水印圖片 * * @param buffImg * 圖像加水印之后的BufferedImage對象 * @param savePath * 圖像加水印之后的保存路徑 */ private void generateWaterFile(BufferedImage buffImg, String savePath) { int temp = savePath.lastIndexOf(".") + 1; try { ImageIO.write(buffImg, savePath.substring(temp), new File(savePath)); } catch (IOException e1) { e1.printStackTrace(); } } /** * * @param args * @throws IOException * IO異常直接拋出了 * @author bls */ public static void main(String[] args) throws IOException { String sourceFilePath = "D://img//di.png"; String waterFilePath = "D://img//ceng.png"; String saveFilePath = "D://img//new.png"; NewImageUtils newImageUtils = new NewImageUtils(); // 構(gòu)建疊加層 BufferedImage buffImg = NewImageUtils.watermark(new File(sourceFilePath), new File(waterFilePath), 0, 0, 1.0f); // 輸出水印圖片 newImageUtils.generateWaterFile(buffImg, saveFilePath); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java實現(xiàn)給圖片添加圖片水印,文字水印及馬賽克的方法示例
- java中ImageReader和BufferedImage獲取圖片尺寸實例
- java IO流讀取圖片供前臺顯示代碼分享
- Java實現(xiàn)的圖片高質(zhì)量縮放類定義與用法示例
- Java實現(xiàn)的微信圖片處理工具類【裁剪,合并,等比例縮放等】
- Java Servlet上傳圖片到指定文件夾并顯示圖片
- Java實現(xiàn)用Freemarker完美導(dǎo)出word文檔(帶圖片)
- Java從網(wǎng)絡(luò)讀取圖片并保存至本地實例
- Eclipse中引入com.sun.image.codec.jpeg包報錯的完美解決辦法
相關(guān)文章
SpringBoot 并發(fā)登錄人數(shù)控制的實現(xiàn)方法
這篇文章主要介紹了SpringBoot 并發(fā)登錄人數(shù)控制的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05Java?嵌入數(shù)據(jù)引擎從?SQLite?到?SPL詳解
這篇文章主要介紹了Java?嵌入數(shù)據(jù)引擎:從?SQLite?到?SPL,SQLite架構(gòu)簡單,其核心雖然是C語言開發(fā)的,但封裝得比較好,對外呈現(xiàn)為一個小巧的Jar包,能方便地集成在Java應(yīng)用中,本文給大家介紹的非常詳細(xì),需要的朋友參考下2022-07-07Java畢業(yè)設(shè)計實戰(zhàn)之平行志愿管理系統(tǒng)的實現(xiàn)
這是一個使用了java+Springboot+Maven+mybatis+Vue+Mysql開發(fā)的圖片平行志愿管理系統(tǒng),是一個畢業(yè)設(shè)計的實戰(zhàn)練習(xí),具有志愿管理該有的所有功能,感興趣的朋友快來看看吧2022-02-02springboot + vue 實現(xiàn)遞歸生成多級菜單(實例代碼)
這篇文章主要介紹了springboot + vue 實現(xiàn)遞歸生成多級菜單,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12詳解Spring Cloud Finchley版中Consul多實例注冊的問題處理
這篇文章主要介紹了詳解Spring Cloud Finchley版中Consul多實例注冊的問題處理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08全面解釋java中StringBuilder、StringBuffer、String類之間的關(guān)系
String的值是不可變的,這就導(dǎo)致每次對String的操作都會生成新的String對象,不僅效率低下,而且大量浪費(fèi)有限的內(nèi)存空間,StringBuffer是可變類,和線程安全的字符串操作類,任何對它指向的字符串的操作都不會產(chǎn)生新的對象,StringBuffer和StringBuilder類功能基本相似2013-01-01解決springboot與springcloud版本兼容問題(附版本兼容表)
在基于spring boot搭建spring cloud時,創(chuàng)建eureka后啟動服務(wù)發(fā)生報錯,本文給大家介紹了解決springboot與springcloud版本兼容問題的幾種方案,需要的朋友可以參考下2024-02-02