java改变png图片的透明度
来源:互联网 发布:淘宝积分是什么意思 编辑:程序博客网 时间:2024/04/27 13:27
java改变png图片的透明度
- 博客分类:
- java
javapng
- package cn;
- import java.awt.Graphics2D;
- import java.awt.image.BufferedImage;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import javax.imageio.ImageIO;
- import javax.swing.ImageIcon;
- public class ChangeImageAlpha {
- /**
- * 改变png图片的透明度
- * @param srcImageFile 源图像地址
- * @param descImageDir 输出图片的路径和名称
- * @param alpha 输出图片的透明度1-10
- */
- private static void setAlpha(String srcImageFile, String descImageDir,int alpha) {
- try {
- //读取图片
- FileInputStream stream = new FileInputStream(new File(srcImageFile));// 指定要读取的图片
- // 定义一个字节数组输出流,用于转换数组
- ByteArrayOutputStream os = new ByteArrayOutputStream();
- byte[] data =new byte[1024];// 定义一个1K大小的数组
- while (stream.read(data) != -1) {
- os.write(data);
- }
- ImageIcon imageIcon = new ImageIcon(os.toByteArray());
- 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());
- //判读透明度是否越界
- if (alpha < 0) {
- alpha = 0;
- } else if (alpha > 10) {
- alpha = 10;
- }
- // 循环每一个像素点,改变像素点的Alpha值
- for (int j1 = bufferedImage.getMinY(); j1 < bufferedImage.getHeight(); j1++) {
- for (int j2 = bufferedImage.getMinX(); j2 < bufferedImage.getWidth(); j2++) {
- int rgb = bufferedImage.getRGB(j2, j1);
- rgb = ((alpha * 255 / 10) << 24) | (rgb & 0x00ffffff);
- bufferedImage.setRGB(j2, j1, rgb);
- }
- }
- g2D.drawImage(bufferedImage, 0, 0, imageIcon.getImageObserver());
- // 生成图片为PNG
- ImageIO.write(bufferedImage, "png", new File(descImageDir));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- setAlpha("F:/gfsciy20110326fscjy1999ppp.png","F:/gfsciy20110326fscjy1999ppp-4.png", 4);
- }
- }
0 0
- java改变png图片的透明度
- java改变png图片的透明度
- IE8下jQuery改变png图片透明度时出现的黑边问题
- winform改变图片的透明度
- IE6 PNG图片透明度问题的方法
- Android png图片透明度的问题
- 通过星级改变图片的透明度
- Android中改变一个图片的透明度
- Android改变图片透明度的方法
- 通过UISlider改变图片的透明度(Swift)
- 改变图片透明度
- SeekBar改变图片透明度
- c#改变图片透明度
- 改变图片透明度
- 3种修复IE6 PNG图片透明度问题的方法
- 修复IE6 PNG图片透明度问题的方法
- 使ie6.0支持.png图片的透明度
- VC透明显示带透明度PNG图片及不带透明度的图片
- UML之状态图
- appium mac 环境搭建
- cocos2dx 手柄
- HDU 5642 (DP)
- IOS中如何切换到主线程工作
- java改变png图片的透明度
- java 文件类File 文本I/O
- CentOS 6.7-jdk
- PHP Undefined index报错的修复方法
- 线性回归&梯度下降
- hdu5644 King's Pilots 【费用流】
- 谈谈新能源汽车--充电桩
- javascript中的BOM与DOM、JS核心
- 外语学习的真实方法及误区分析(精编版)