图片叠加效果Java代码实现
本文实例为大家分享了Java实现图片叠加效果展示的具体代码,供大家参考,具体内容如下
importjava.awt.AlphaComposite; importjava.awt.Graphics2D; importjava.awt.image.BufferedImage; importjava.io.File; importjava.io.IOException; importjavax.imageio.ImageIO; publicclassNewImageUtils{ /** * *@Title:构造图片 *@Description:生成水印并返回java.awt.image.BufferedImage *@paramfile *源文件(图片) *@paramwaterFile *水印文件(图片) *@paramx *距离右下角的X偏移量 *@paramy *距离右下角的Y偏移量 *@paramalpha *透明度,选择值从0.0~1.0:完全透明~完全不透明 *@returnBufferedImage *@throwsIOException */ publicstaticBufferedImagewatermark(Filefile,FilewaterFile,intx,inty,floatalpha)throwsIOException{ //获取底图 BufferedImagebuffImg=ImageIO.read(file); //获取层图 BufferedImagewaterImg=ImageIO.read(waterFile); //创建Graphics2D对象,用在底图对象上绘图 Graphics2Dg2d=buffImg.createGraphics(); intwaterImgWidth=waterImg.getWidth();//获取层图的宽度 intwaterImgHeight=waterImg.getHeight();//获取层图的高度 //在图形和图像中实现混合和透明效果 g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,alpha)); //绘制 g2d.drawImage(waterImg,x,y,waterImgWidth,waterImgHeight,null); g2d.dispose();//释放图形上下文使用的系统资源 returnbuffImg; } /** *输出水印图片 * *@parambuffImg *图像加水印之后的BufferedImage对象 *@paramsavePath *图像加水印之后的保存路径 */ privatevoidgenerateWaterFile(BufferedImagebuffImg,StringsavePath){ inttemp=savePath.lastIndexOf(".")+1; try{ ImageIO.write(buffImg,savePath.substring(temp),newFile(savePath)); }catch(IOExceptione1){ e1.printStackTrace(); } } /** * *@paramargs *@throwsIOException *IO异常直接抛出了 *@authorbls */ publicstaticvoidmain(String[]args)throwsIOException{ StringsourceFilePath="D://img//di.png"; StringwaterFilePath="D://img//ceng.png"; StringsaveFilePath="D://img//new.png"; NewImageUtilsnewImageUtils=newNewImageUtils(); //构建叠加层 BufferedImagebuffImg=NewImageUtils.watermark(newFile(sourceFilePath),newFile(waterFilePath),0,0,1.0f); //输出水印图片 newImageUtils.generateWaterFile(buffImg,saveFilePath); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。