六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 108|回复: 0

图片(旋转/缩放/翻转)变换效果(ccs3/滤镜/canvas)

[复制链接]

升级  41.33%

30

主题

30

主题

30

主题

秀才

Rank: 2

积分
112
 楼主| 发表于 2013-1-24 06:43:19 | 显示全部楼层 |阅读模式
原文:http://www.cnblogs.com/cloudgamer/archive/2010/08/16/ImageTrans.html
 
以前要实现图片的旋转或翻转,只能用ie的滤镜来实现,虽然canvas也实现,但ie不支持而且不是html标准。
css3出来后,终于可以用标准的transform来实现变换,而canvas也已成为html5标准的一部分。
css3和html5使web变得越来越强大,各种新奇的技术正等待我们发掘。
本程序分别通过滤镜(ie)、ccs3和canvas来实现图片的旋转、缩放和翻转变换效果,可以用作图片查看器。
有如下特色:
1,用滤镜、ccs3和canvas实现相同的变换效果;
2,可任意角度旋转;
3,可任意角度翻转;
4,可扩展滚轮缩放;
5,可扩展拖动旋转。
兼容:ie6/7/8, firefox 3.6.8, opera 10.6, safari 5.0.1, chrome 5.0

效果预览
#idContainer { border: 1px solid rgb(0, 0, 0); width: 600px; height: 500px; background: none no-repeat scroll center center rgb(255, 255, 255); }

程序说明
【基本原理】
变换主要是利用css3的变换样式transform的matrix方法来实现。
ie不支持css3,但有Matrix滤镜也能实现类似的效果。
程序还用canvas,通过画图实现相同的效果。

【模式设置】
程序包含三种模式:css3、filter和canvas,程序初始化时,会根据自定义模式进行模式设置。
各个模式相关的属性和方法都存放在ImageTrans.modes中。
每个模式对象都包含support属性,表示当前浏览器是否支持该模式,还有几个方法:
init:初始化执行程序
load:加载图片执行程序
show:变换显示程序
dispose:销毁程序
使用这样的格式来自定义模式:"css3|filter|canvas",判断过程主要在_initMode程序中:
<div class="cnblogs_code">var  modes  =  ImageTrans.modes;this ._support  =  $$A.some(  this .options.mode.toLowerCase().split( " | " ),  function (mode){    mode  =  modes[ mode ];     if  ( mode  &&  mode.support ) {        ...         return   true ;    }},  this  );
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表