js实现图片旋转的三种方法_javascript技巧
程序员文章站
2022-05-28 21:57:19
...
1 使用jQueryRotate.js实现
示例代码:
测试结果:chrome下效果正常,旋转后img对象仍为img对象;ie8下效果正常,但旋转后img对象变为下面对象,由于对象变化,若旋转后仍按原来方法获取img对象,则会报js错误。欲获取image对象,可根据class获取。如果图像旋转后,不进行其它操作,则可用此方法。若进行其它操作,如放大、缩小图像,则此方法实现较复杂。
2 使用Microsoft提供的Matrix对象
示例代码:
测试结果:chrome下效果正常,但旋转后img对象变为canvas对象;ie8下效果正常,旋转后img对象仍为img对象。Matrix()参数较多,使用时需较多计算。
3 使用Microsoft提供的BasicImage对象
示例代码:
测试结果:chrome下不能旋转;ie8下效果正常,旋转后img对象仍为img对象。BasicImage()仅一个参数。
查看这三种方法的代码会发现,本质上是一种解决方案:chrome下使用canvas对象实现,ie8下使用VML或者Matrix()或BasicImage()实现。本人近期改造一个组件:其中涉及到旋转、放大图片,由于jQueryRotate.js在ie8下会生成一个新的对象,导致放大图片前选择图片时,需要进行特殊处理。后决定对chrome、ie8分开处理,chrome下使用jQueryRotate实现,ie8下使用BasicImage()实现,保证了代码的简洁性和可读性。
示例代码:
复制代码 代码如下:
测试结果:chrome下效果正常,旋转后img对象仍为img对象;ie8下效果正常,但旋转后img对象变为下面对象,由于对象变化,若旋转后仍按原来方法获取img对象,则会报js错误。欲获取image对象,可根据class获取。如果图像旋转后,不进行其它操作,则可用此方法。若进行其它操作,如放大、缩小图像,则此方法实现较复杂。
复制代码 代码如下:
2 使用Microsoft提供的Matrix对象
示例代码:
复制代码 代码如下:
测试结果:chrome下效果正常,但旋转后img对象变为canvas对象;ie8下效果正常,旋转后img对象仍为img对象。Matrix()参数较多,使用时需较多计算。
3 使用Microsoft提供的BasicImage对象
示例代码:
复制代码 代码如下:
测试结果:chrome下不能旋转;ie8下效果正常,旋转后img对象仍为img对象。BasicImage()仅一个参数。
查看这三种方法的代码会发现,本质上是一种解决方案:chrome下使用canvas对象实现,ie8下使用VML或者Matrix()或BasicImage()实现。本人近期改造一个组件:其中涉及到旋转、放大图片,由于jQueryRotate.js在ie8下会生成一个新的对象,导致放大图片前选择图片时,需要进行特殊处理。后决定对chrome、ie8分开处理,chrome下使用jQueryRotate实现,ie8下使用BasicImage()实现,保证了代码的简洁性和可读性。
推荐阅读
-
python简单实现旋转图片的方法
-
使用JavaScript实现node.js中的path.join方法
-
JavaScript实现图片懒加载的方法分析
-
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
-
JS实现上传图片的三种方法并实现预览图片功能
-
Node.js + express实现上传大文件的方法分析【图片、文本文件】
-
正则表达式提取网址、标题、图片等一例(.Net Asp Javascript/Js)的实现
-
node.js中实现kindEditor图片上传功能的方法教程
-
js实现canvas保存图片为png格式并下载到本地的方法
-
JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】