示例#1
0
  /**
   * 创建亮度变换图像(J2ME中只支持PNG格式图片),内存空间足够时调用此方法
   *
   * @param pic
   * @param pic 源图片
   * @param srcX 绘制块在源图片的X偏移
   * @param srcY 绘制块在源图片的Y偏移
   * @param w 绘制宽度
   * @param h 绘制高度
   * @param destX 显示的X坐标
   * @param destY 显示的Y坐标
   * @param delta
   * @return
   */
  public static Image createBright(
      Image pic, int srcX, int srcY, int w, int h, int destX, int destY, int delta) {

    int[] rgbData = new int[w * h];
    if (delta == 0) {
      return null;
    }
    pic.getRGB(rgbData, 0, w, srcX, srcY, w, h);
    for (int i = rgbData.length - 1; i >= 0; --i) {
      rgbData[i] = RenderUtil.turnBright(rgbData[i], delta);
    }
    return Image.createRGBImage(rgbData, w, h, true);
  }
示例#2
0
  /**
   * 绘制亮度变换图像(J2ME中只支持PNG格式图片),内存空间足够时调用此方法
   *
   * @param g
   * @param pic 源图片
   * @param srcX 绘制块在源图片的X偏移
   * @param srcY 绘制块在源图片的Y偏移
   * @param w 绘制宽度
   * @param h 绘制高度
   * @param destX 显示的X坐标
   * @param destY 显示的Y坐标
   * @param delta
   */
  public static void drawBright(
      SGraphics g, Image pic, int srcX, int srcY, int w, int h, int destX, int destY, int delta) {

    int[] rgbData = new int[w * h];
    Image brightImg;
    if (delta == 0) {
      return;
    }
    pic.getRGB(rgbData, 0, w, srcX, srcY, w, h);
    for (int i = rgbData.length - 1; i >= 0; --i) {
      rgbData[i] = RenderUtil.turnBright(rgbData[i], delta);
    }
    brightImg = Image.createRGBImage(rgbData, w, h, true);
    g.drawImage(brightImg, destX, destY, 0);
  }
示例#3
0
  /**
   * 逐行绘制亮度变换图像(J2ME中只支持PNG格式图片),内存不够时调用次方法,绘制效率偏低
   *
   * @param g
   * @param pic 源图片
   * @param srcX 绘制块在源图片的X偏移
   * @param srcY 绘制块在源图片的Y偏移
   * @param w 绘制宽度
   * @param h 绘制高度
   * @param destX 显示的X坐标
   * @param destY 显示的Y坐标
   * @param delta
   */
  public static void drawBrightByLine(
      SGraphics g, Image pic, int srcX, int srcY, int w, int h, int destX, int destY, int delta) {

    int[] rgbData = new int[w];
    if (delta == 0) {
      return;
    }
    for (int hd = h - 1; hd >= 0; --hd) {
      pic.getRGB(rgbData, 0, w, srcX, srcY + hd, w, 1);
      for (int i = rgbData.length - 1; i >= 0; --i) {
        rgbData[i] = RenderUtil.turnBright(rgbData[i], delta);
      }
      g.drawRGB(rgbData, 0, w, destX, destY + hd, w, 1, true);
    }
  }