iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java 生成透明图片的设置实现demo
  • 163
分享到

Java 生成透明图片的设置实现demo

Java 生成透明图片Java 设置图片透明 2023-02-08 12:02:35 163人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

设置图片透明

设置图片透明

Goodsin" data-img="/file/imgs/upload/202302/08/ifk0zaai1g3.jpg" data-name="高性能Java系统权威指南" data-owner="京东自营" data-price="59" data-tgid="38" data-url="/file/imgs/upload/202302/08/owfndoumsyu.com"; //生成指定文字透明图片 createImage(text,filePath,"宋体",45); //设置指定图片透明 //setColorInRange(path,path); } /\*\* \* 动态获取文字宽高 \* @param text 文字 \* @param font 字体 \* @return \*/ private static int[] getWidthAndHeight(String text, Font font) { Rectangle2D r = font.getStringBounds(text, new FontRenderContext( AffineTransfORM.getScaleInstance(1, 1), false, false)); int unitHeight = (int) Math.floor(r.getHeight()); // 获取整个str用了font样式的宽度这里用四舍五入后+1保证宽度绝对能容纳这个字符串作为图片的宽度 int width = (int) Math.round(r.getWidth()) + 1; // 把单个字符的高度+3保证高度绝对能容纳字符串作为图片的高度 int height = unitHeight + 3; return new int[]{width, height}; } /\*\* \* 生成指定文字透明图片 \* @param text 文字内容 "我是小马哥" \* @param filePath 生成地址 "/Users/maruifu/Desktop/123.png" \* @param fontName 字体名称 "宋体" \* @param fontSize 字体大小 45 \*/ public static void createImage(String text, String filePath,String fontName,int fontSize) { ImageOutputStream imageOutputStream = null; try { Font font = new Font(fontName, Font.BOLD,fontSize); // 获取font的样式应用在输出内容上整个的宽高 int[] arr = getWidthAndHeight(text, font); // 设置背景宽高 int width = arr[0]; int height = arr[1]; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE\_4BYTE\_ABGR); // 获取图形上下文对象 Graphics2D graphics = (Graphics2D)image.getGraphics(); graphics.clearRect(0, 0, width, height); // 填充 graphics.fillRect(0, 0, width, height); // 设定字体大小及样式 graphics.setFont(font); // 字体颜色 graphics.setColor(Color.BLACK); // 描绘字符串 graphics.drawString(text, 0, font.getSize()); // 图片透明度 setTransparency(image, graphics); File jpgFile = new File(filePath); if(!jpgFile.exists()) { jpgFile.createNewFile(); } // 创建图片输出流对象,基于文件对象 imageOutputStream = Imageio.createImageOutputStream(jpgFile); // 写入 ImageIO.write(image, FilenameUtils.getExtension(filePath),imageOutputStream); } catch (IOException e) { log.error("生成图片失败{}",e); } finally { // 关闭流 IOUtils.closeQuietly(imageOutputStream); } } private static void setTransparency(BufferedImage image, Graphics2D graphics) { int alpha = 0; // 外层遍历是Y轴的像素 for (int y = image.getMinY(); y < image.getHeight(); y++) { // 内层遍历是X轴的像素 for (int x = image.getMinX(); x < image.getWidth(); x++) { int rgb = image.getRGB(x, y); // 对当前颜色判断是否在指定区间内 if (colorInRange(rgb)) { alpha = 0; } else { // 设置为不透明 alpha = 255; } // #AARRGGBB 最前两位为透明度 rgb = (alpha << 24) | (rgb & 0x00ffffff); image.setRGB(x, y, rgb); } } // 绘制设置了RGB的新图片 graphics.drawImage(image, 0, 0, null); //释放画笔 graphics.dispose(); } /\*\* \* 设置指定图片透明 \* @param sourcePath 源文件地址 \* @param targetPath 新文件地址 \*/ public static void setColorInRange(String sourcePath,String targetPath ) { try { BufferedImage image = ImageIO.read(new File(sourcePath)); // 高度和宽度 int height = image.getHeight(); int width = image.getWidth(); // 生产背景透明和内容透明的图片 ImageIcon imageIcon = new ImageIcon(image); BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE\_4BYTE\_ABGR); // 获取画笔 Graphics2D g2D = (Graphics2D) bufferedImage.getGraphics(); // 绘制Image的图片 g2D.drawImage(imageIcon.getImage(), 0, 0, null); // 图片透明 setTransparency(bufferedImage, g2D); // 生成图片为PNG ImageIO.write(bufferedImage, FilenameUtils.getExtension(sourcePath), new File(targetPath)); } catch (IOException e) { log.error("设置图片透明失败{}",e); } } /\*\* \* 判断是背景还是内容 \* @param color \* @return \*/ public static boolean colorInRange(int color) { // 色差范围0~255 int colorRange = 210; // 获取color(RGB)中R位 int red = (color & 0xff0000) >> 16; // 获取color(RGB)中G位 int green = (color & 0x00ff00) >> 8; // 获取color(RGB)中B位 int blue = (color & 0x0000ff); // 通过RGB三分量来判断当前颜色是否在指定的颜色区间内 if (red >= colorRange && green >= colorRange && blue >= colorRange) { return true; } return false; }

以上就是Java 生成透明图片设置及实现示例,更多关于Java 生成透明图片的资料请关注编程网其它相关文章!

--结束END--

本文标题: Java 生成透明图片的设置实现demo

本文链接: https://www.lsjlt.com/news/195103.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java 生成透明图片的设置实现demo
    设置图片透明 ...
    99+
    2023-02-08
    Java 生成透明图片 Java 设置图片透明
  • php怎么将图片设置成背景透明
    本文小编为大家详细介绍“php怎么将图片设置成背景透明”,内容详细,步骤清晰,细节处理妥当,希望这篇“php怎么将图片设置成背景透明”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。随着网站设计越发复杂,开发者不断探...
    99+
    2023-07-06
  • Java操作透明图片并保持背景透明的实现
    目录Java操作透明图片并保持背景透明Java图片背景透明及透明度处理Java操作透明图片并保持背景透明 最近的一个需求,需要对背景为透明的图片加汉字,加完后会出现背景变黑的情况,附...
    99+
    2024-04-02
  • css设置图片透明度的方法
    这篇文章主要介绍了css设置图片透明度的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在css中,可以使用opacity属性设置图片的透明度,语法“opacity:数值”...
    99+
    2023-06-14
  • css如何设置图片的透明度
    这篇文章主要介绍了css如何设置图片的透明度,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。css的选择器有哪些css的选择器可以分为三大类,即id选择器、class选择器、标...
    99+
    2023-06-14
  • html如何设置图片的透明度
    这篇文章将为大家详细讲解有关html如何设置图片的透明度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 html图片设置透明度的方法:1、在i...
    99+
    2024-04-02
  • ppt设置图片透明度的方法
    小编给大家分享一下ppt设置图片透明度的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法:首先打开ppt,导入图片;然后点击“插入”-“形状”-“矩形”,绘...
    99+
    2023-06-14
  • css图片如何设置透明度
    这篇文章主要介绍css图片如何设置透明度,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在css中可以通过opacity属性来设置图片透明度,该属性的使用语法是“opacity:value|inherit;”,其中参数...
    99+
    2023-06-14
  • css如何设置背景图片透明
    这篇文章主要为大家展示了“css如何设置背景图片透明”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css如何设置背景图片透明”这篇文章吧。 ...
    99+
    2024-04-02
  • html图片中如何设置透明度
    这篇文章将为大家详细讲解有关html图片中如何设置透明度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。html图片设置透明度的方法:首先创建一个div;然后设置一个类名;最后通过“filter:alpha...
    99+
    2023-06-15
  • 怎么在html中设置图片透明
    这期内容当中小编将会给大家带来有关怎么在html中设置图片透明,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。html设置图片透明<!DOCTYPE html><html>...
    99+
    2023-06-15
  • html中img图片设置透明度的方法
    这篇“html中img图片设置透明度的方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“html中img图片设置透明度的方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所...
    99+
    2023-06-06
  • css怎么设置背景图片透明度
    css设置背景图片透明度的方法:使用opacity属性可以设置背景图片透明度。示例:<!DOCTYPE html><html>    <head>&nbs...
    99+
    2024-04-02
  • css如何设置背景图片透明度
    这篇文章主要介绍“css如何设置背景图片透明度”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css如何设置背景图片透明度”文章能帮助大家解决问题。使用opacity属性可以设置背景图片透明度。示例:...
    99+
    2023-07-04
  • css怎么实现背景图片透明文字不透明
    要实现背景图片透明,文字不透明的效果,可以使用CSS的伪元素和定位技巧来实现。首先,将要显示的文字包裹在一个容器元素内。例如,使用一...
    99+
    2023-08-09
    css
  • html如何设置半透明背景图片
    要设置半透明背景图片,可以使用CSS的opacity属性来实现。首先,需要在HTML中添加一个元素来包含背景图片。可以使用一个div...
    99+
    2023-08-09
    html
  • java 实现图片圆角处理、背景透明化
    目录java 图片圆角处理、背景透明化java 的图片处理解析java 图片圆角处理、背景透明化 public void makeRoundedCorner(File...
    99+
    2024-04-02
  • css如何设置图片透明度使图片逐渐消失
    这篇文章主要介绍“css如何设置图片透明度使图片逐渐消失”,在日常操作中,相信很多人在css如何设置图片透明度使图片逐渐消失问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”cs...
    99+
    2024-04-02
  • css怎么实现背景图片半透明内容不透明
    这篇文章将为大家详细讲解有关css怎么实现背景图片半透明内容不透明,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果展示半透明不透明常见的失败做法最常见的做法事设置元素的opacity,这种设置出来的效果...
    99+
    2023-06-08
  • html怎么给背景图片设置透明度
    本文将为大家详细介绍“html怎么给背景图片设置透明度”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“html怎么给背景图片设置透明度”能够给你意想不到的收获,请大家跟着小编的...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作