MIDP1.0实现图片的旋转

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;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值