zoukankan      html  css  js  c++  java
  • 绘制半透明的图片

      /**

       * CreateAlphaImage() 绘制带半透明的图片
       * 
       * @param alphaValue
       *            透明度,其取值如0x88FFFFFF,前两位十六进制表示透明度,88表示透明度为50%,如果是00表示全透明,FF表示不透明。
       * @param srcImage
       *            需要画成半透明的图片
       * @return Image 半透明处理后的图片
       */
      private Image createAlphaImage(Image srcImage, int alphaValue) {
       int w = srcImage.getWidth();
       int h = srcImage.getHeight();
       int len = w * h;
       int srcRGB[] = new int[len];
       int dscRGB[] = new int[len];
       try {
        srcImage.getRGB(srcRGB, 0, w, 0, 0, w, h);
       } catch (Exception ex) {
        ex.printStackTrace();
       }
       for (int i = 0; i < len; i++) {
        if ((int) (srcRGB[i]) == 0x00FFFFFF) {
         dscRGB[i] = srcRGB[i];
        } else {
         dscRGB[i] = srcRGB[i] & alphaValue;
        }
       }
       return Image.createRGBImage(dscRGB, w, h, true);
      }

      protected void paint(Graphics g) {

       // 创建可变的自定义图片,指定宽度和高度
       Image bufImg = Image.createImage(w, h);
       Graphics gg = bufImg.getGraphics();
       gg.setColor(0x0000FF);
       // 使用白色绘制背景
       gg.fillRect(0, 0, w, h);
       // 绘制需要的图片内容
       gg.setColor(0xFF0000);
       gg.fillRect(w/4,h/4,w/2,h/2);
       Image ai = this.createAlphaImage(bufImg, 0x88ffffff);
       g.drawImage(ai, 0, 0, Graphics.TOP | Graphics.LEFT);
      }

  • 相关阅读:
    微擎开发------day02
    微擎开发------day01
    Myisam 和 Innodb 区别
    Curl的简单使用步骤
    微信小程序之----获取设备信息
    微信小程序之 -----事件
    微信小程序之---- 数据处理
    微信小程序之----制作视频弹幕
    cocos2dx安卓客户端接入移动MM付费SDK
    Win7 / Win8 搭建配置【vs2010】、【cocos2dx环境】、【Android平台】
  • 原文地址:https://www.cnblogs.com/xixiaohui/p/1963894.html
Copyright © 2011-2022 走看看