MIDP1.0实现图片的旋转

来源:互联网 发布:音乐相册软件哪个好 编辑:程序博客网 时间:2024/05/22 11:59
public static final Image TransformImage (Image srcImage, int transform)
{
 Image result = null;
 int srcW = srcImage.getWidth();
 int srcH = srcImage.getHeight();
 Graphics g = null;
 switch (transform)
 {
  // nothing to do
  case TRANS_NONE:
   return srcImage;
   // X-flip
  case TRANS_MIRROR:
   result = Image.createImage(srcW, srcH);
   g = result.getGraphics();
   for (int i = 0; i < srcW; i++)
   {
    g.setClip(i, 0, 1, srcH);
    g.drawImage(srcImage, i * 2 - srcW + 1, 0, Graphics.TOP
      | Graphics.LEFT);

   }
   break;
  // Y-flip
  case TRANS_MIRROR_ROT180:
   result = Image.createImage(srcW, srcH);
   g = result.getGraphics();
   for (int i = 0; i < srcH; i++)
   {
    g.setClip(0, i, srcW, 1);
    g.drawImage(srcImage, 0, 2 * i - srcH + 1, Graphics.TOP
      | Graphics.LEFT);

   }
   break;
  // rotate 180 degree deasil
  case TRANS_ROT180:
   result = TransformImage(srcImage, TRANS_MIRROR_ROT180);
   result = TransformImage(result, TRANS_MIRROR);
   break;
  // rotate 90 degree deasil
  case TRANS_ROT90:
   result = Image.createImage(srcH, srcW);
   g = result.getGraphics();
   for (int i = 0; i < srcH; i++)
   {
    for (int j = 0; j < srcW; j++)
    {
     g.setClip(i, j, 1, 1);
     g.drawImage(srcImage, i - j, i + j - srcH, Graphics.TOP
       | Graphics.LEFT);
    }

   }
   break;
  // X-flip and then rotate 270 degree deasil
  case TRANS_MIRROR_ROT270:
   result = Image.createImage(srcH, srcW);
   g = result.getGraphics();
   for (int i = 0; i < srcH; i++)
   {
    for (int j = 0; j < srcW; j++)
    {
     g.setClip(i, j, 1, 1);
     g.drawImage(srcImage, i - j, j - i, Graphics.TOP
       | Graphics.LEFT);
    }

   }
   break;
  // X-flip and then rotate 90 degree deasil
  case TRANS_MIRROR_ROT90:
   result = TransformImage(srcImage, TRANS_ROT90);
   result = TransformImage(result, TRANS_MIRROR_ROT180);
   break;
  // Rotate 270 degree deasil
  case TRANS_ROT270:
   result = TransformImage(srcImage, TRANS_MIRROR_ROT270);
   result = TransformImage(result, TRANS_MIRROR_ROT180);
   break;
 }
 return result;
}
原创粉丝点击