java图片局部透明
来源:互联网 发布:草图大师 mac 破解 编辑:程序博客网 时间:2024/04/30 00:03
/** * 对图片中的 黑色或白色进行透明化处理 * * @param sourcePath * 原始图 * @param targetPath * 目标图,为null时在原始图同级目录下生成目标图 * @param type * B:黑色 W:白色 * @return 结果图字节数据组 */ public static byte[] transferAlpha(String sourcePath, String targetPath, String type) { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); try { File iFile = new File(sourcePath); if (!iFile.exists()) { return byteArrayOutputStream.toByteArray(); } ImageIcon imageIcon = new ImageIcon(ImageIO.read(iFile)); BufferedImage bufferedImage = new BufferedImage(imageIcon .getIconWidth(), imageIcon.getIconHeight(), BufferedImage.TYPE_4BYTE_ABGR); Graphics2D g2D = (Graphics2D) bufferedImage.getGraphics(); g2D.drawImage(imageIcon.getImage(), 0, 0, imageIcon .getImageObserver()); int alpha = 0; int offset = 20; boolean isBlack = type.equals("B"); for (int j1 = bufferedImage.getMinY(); j1 < bufferedImage .getHeight(); j1++) { for (int j2 = bufferedImage.getMinX(); j2 < bufferedImage .getWidth(); j2++) { int rgb = bufferedImage.getRGB(j2, j1); int r = (rgb & 0xff0000) >> 16; int g = (rgb & 0xff00) >> 8; int b = rgb & 0xff; boolean checkW = ((255 - r) < offset) && ((255 - g) < offset) && ((255 - b) < offset); boolean checkB = (r < offset) && (g < offset) && (b < offset); if (isBlack ? checkB : checkW) { rgb = ((alpha + 1) << 24) | (rgb & 0x00ffffff); } bufferedImage.setRGB(j2, j1, rgb); } } g2D.drawImage(bufferedImage, 0, 0, imageIcon.getImageObserver()); File targetFile = null; if (targetPath == null) { targetFile = new File(sourcePath); } else { targetFile = new File(targetPath); if (!targetFile.exists()) { File dir = new File(targetFile.getParent()); if (!dir.exists()) { boolean result = dir.mkdirs(); if (!result) { log.info("crate file failed.path:" + dir.getPath()); } } } } ImageIO.write(bufferedImage, "png", targetFile); } catch (Exception e) { e.printStackTrace(); } return byteArrayOutputStream.toByteArray(); }
- java图片局部透明
- java 透明图片
- JAVA图片透明处理
- java 透明图片
- 把android 中图片局部区域改为透明
- 把android中图片局部区域改为透明
- JAVA 打印图片透明水印
- java透明图片上传,透明部分变黑的解决方案。
- java 将图片白色部分透明
- java 图片如何让白色变透明
- Java图片渲染,加水印,旋转,透明....
- 图片透明
- Java将图片处理成背景透明的圆形图片
- Java将图片处理成背景透明的圆形图片
- 局部透明窗口的实现
- java添加透明的图片和文字水印
- 关于Java生成背景透明的png图片
- java 创建PNG格式的透明背景的图片
- dirent和DIR 结构体 --- 表示文件夹中目录内容信息
- zip版tomcat(6,7)不能注册成windows服务或者注册后不能启动的问题解决
- HTML5 离线功能详解 - 构建 Offline Web Application
- VB的常用内部控件简介
- 职场攻略:加班族避免常加班不妨试试被潜
- java图片局部透明
- 用keytool生成证书过程
- 什么是套接字
- #R#barplot
- 数据库设计中的14个技巧( 转)写的真好,怕文章找不见了,留存
- 11种致命的“电脑病”症状及缓解方法
- javascript生成UUID的两种方式
- Linux进程间通信(三): 消息队列
- linux下du和df命令的区别 ---检查文件资源是否被释放