Asp.net 中旋转图片的几种方式

在Asp.Net里将图片旋转的方式大概有4种(个人意见)。

1、通过css的滤镜效果

      FlipV,FlipH 可以通过google找出很多,但是这种方式只能是选择固定的角度 90,180,270

 

2、通过javascript

      找了很久没有找到好的js code,这个 http://www.walterzorn.com/rotate_img/rotate_img.htm 效果还算不错,

      但是图片稍微大点就会有失真的感觉,而且会造成页面运行缓慢。所以小图片还可以接受(QQ的表情icon那么大)

      可以旋转任意角度。

 

3、通过vml旋转图片

      这个方式是比较好的方式,关于vml的资料google下很多,这里利用的是vml里的Rotation,效果很好,即便是大图片

      也不会失真,可以是任意角度,而且不需要写codebind。

 

4、通过GDI+旋转图片

      这个方式也不错,在对vml不熟悉的话,GDI+也是很好的选择。GDI+是.Net Fromework 自带的类库里。这种的好处

      是利用大家的都熟悉的codebind进行编码旋转图片并输出到Response,然后将Image的src 指向这个写好功能url地址。

      这种方式也可以是任意角度。

 

我采用的是第3中方式,下面附第3中方式的简单实现(摘自高人手笔)

 

<html xmlns:v="urn:chemas-microsoft-com:vml" xmlns ="urn:chemas-microsoft-com ffice ffice">
<head>
<title>Untitled Page</title>
<style type="text/css">v/: * { behavior:url(#default#VML); display:inline-block }</style>
</head>

<body style="background-color:#000000">
<script type="text/javascript" language="javascript">
//本函数为所有使用旋转功能的物件更新视图
function window.onload()
{
 try{
  for(i=0;i<xuanzhuan.length;i++)
   xuanzhuan[i].Rotation=xuanzhuan[i].xuanzhuanstr;
   xuanzhuan.Rotation=xuanzhuan.xuanzhuanstr
   }
 catch(e)
 {}
}
</script>

<table>
 <tr>
  <td>
   <div>
       <v:Image id=xuanzhuan style="Z-INDEX: 1001; LEFT: 290px; WIDTH: 157px; POSITION: absolute; TOP: 123px; HEIGHT: 105px" xuanzhuanstr="100" src = "C:/Documents and Settings/paulhuang/My Documents/My Pictures/1.jpg" coordsize = "21600,21600"></v:Image>
   </div>
  </td>
  <td>
      <div>
          <v:Image id=xuanzhuan style="Z-INDEX: 1001; LEFT: 435px; WIDTH: 157px; POSITION: absolute; TOP: 244px; HEIGHT: 105px" xuanzhuanstr="300" src = "C:/Documents and Settings/paulhuang/My Documents/My Pictures/2.jpg" coordsize = "21600,21600"></v:Image>
      </div>
  </td>

 </tr>
</table>

</body>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值