sunfruit[請訪問http://www.fruitres.cn]

          --我相信JAVA能走得更遠 QQ:316228067

          [原創]通過JAVA改變圖片的像素Alpha值實現圖片透明

              --sunfruit

              設置圖片的每個象素Alpha,使得圖片透明,核心代碼如下

              private void setAlpha(ByteArrayOutputStream os) {
              /**
               * 增加測試項
               * 讀取圖片,繪制成半透明
               */
              try {

                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());
                //循環每一個像素點,改變像素點的Alpha值
                int alpha = 100;
                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 + 1) << 24) | (rgb & 0x00ffffff);
                    bufferedImage.setRGB(j2, j1, rgb);
                  }
                }
                g2D.drawImage(bufferedImage, 0, 0, imageIcon.getImageObserver());
               
                //生成圖片為PNG

                ImageIO.write(bufferedImage, "png",  new File(圖片路徑));
              }
              catch (Exception e) {
                e.printStackTrace();
              }

            }

          posted on 2007-05-20 00:20 sunfruit 閱讀(12115) 評論(0)  編輯  收藏 所屬分類: JAVA SE & EE

          主站蜘蛛池模板: 荥阳市| 宁海县| 修水县| 高淳县| 英吉沙县| 任丘市| 两当县| 普宁市| 耒阳市| 安泽县| 岳阳县| 封丘县| 延川县| 库尔勒市| 深水埗区| 望奎县| 于都县| 宜都市| 新郑市| 安远县| 丰镇市| 林口县| 华池县| 甘泉县| 淄博市| 沽源县| 雅江县| 辽中县| 永昌县| 扶沟县| 屯门区| 宜春市| 通渭县| 镇江市| 增城市| 金沙县| 安国市| 衡山县| 前郭尔| 博客| 阜南县|