`
hipeace87
  • 浏览: 174337 次
  • 性别: Icon_minigender_1
  • 来自: 山东菏泽
社区版块
存档分类
最新评论

让火狐也支持图片倒置滤镜

阅读更多

不得不承认jquery是一个很好很强大的js库

前段时间的项目时碰到一个问题,所有服务器上的图片都是反的

如果说要把源图片都再改回正常的也不太可能了,几百万张图片不只是一个工作量的问题

就算是用程序跑也要好久的。

想到了滤镜,不过火狐是不支持的。

 

又想到jquery的兼容性,何不用它来试试呢,网上搜了下,找到了jquery.rotate.js的用法

jQuery.fn.rotate = function(angle,whence) {
	var p = this.get(0);

	// we store the angle inside the image tag for persistence
	if (!whence) {
		p.angle = ((p.angle==undefined?0:p.angle) + angle) % 360;
	} else {
		p.angle = angle;
	}

	if (p.angle >= 0) {
		var rotation = Math.PI * p.angle / 180;
	} else {
		var rotation = Math.PI * (360+p.angle) / 180;
	}
	var costheta = Math.cos(rotation);
	var sintheta = Math.sin(rotation);

	if (document.all && !window.opera) {
		var canvas = document.createElement('img');

		canvas.src = p.src;
		canvas.height = p.height;
		canvas.width = p.width;

		canvas.style.filter = "progid:DXImageTransform.Microsoft.Matrix(M11="+costheta+",M12="+(-sintheta)+",M21="+sintheta+",M22="+costheta+",SizingMethod='auto expand')";
	} else {
		var canvas = document.createElement('canvas');
		if (!p.oImage) {
			canvas.oImage = new Image();
			canvas.oImage.src = p.src;
		} else {
			canvas.oImage = p.oImage;
		}

		canvas.style.width = canvas.width = Math.abs(costheta*canvas.oImage.width) + Math.abs(sintheta*canvas.oImage.height);
		canvas.style.height = canvas.height = Math.abs(costheta*canvas.oImage.height) + Math.abs(sintheta*canvas.oImage.width);

		var context = canvas.getContext('2d');
		context.save();
		if (rotation <= Math.PI/2) {
			context.translate(sintheta*canvas.oImage.height,0);
		} else if (rotation <= Math.PI) {
			context.translate(canvas.width,-costheta*canvas.oImage.height);
		} else if (rotation <= 1.5*Math.PI) {
			context.translate(-costheta*canvas.oImage.width,canvas.height);
		} else {
			context.translate(0,-sintheta*canvas.oImage.width);
		}
		context.rotate(rotation);
		context.drawImage(canvas.oImage, 0, 0, canvas.oImage.width, canvas.oImage.height);
		context.restore();
	}
	canvas.id = p.id;
	canvas.angle = p.angle;
	p.parentNode.replaceChild(canvas, p);
}

jQuery.fn.rotateRight = function(angle) {
	this.rotate(angle==undefined?90:angle);
}

jQuery.fn.rotateLeft = function(angle) {
	this.rotate(angle==undefined?-90:-angle);
}

 最新源码可去googlecode 下载

  用法

$('#pic').rotate(180);

 兼容火狐和IE,有另外方法实现也请大家给予回复

 

 

分享到:
评论

相关推荐

    支持Flash插件的Firefox火狐浏览器

    **标题详解:**“支持Flash插件的Firefox火狐浏览器” 在互联网的早期,Adobe Flash是一种广泛用于创建动态内容和多媒体交互的技术。然而,随着HTML5等更现代、更安全的替代品出现,Adobe公司宣布在2020年底停止对...

    让FireFox支持OCX插件的安装包

    标题中的“让FireFox支持OCX插件的安装包”指的是通过特定的手段使得Mozilla Firefox浏览器能够识别并运行OCX(Object Control Extension)插件。OCX插件是微软Windows平台下的一种ActiveX技术,主要用于扩展应用...

    FireFox支持OCX插件

    标题中的“Firefox支持OCX插件”意味着Mozilla Firefox这款开源网络浏览器可以运行OCX(ActiveX Control)组件,这是微软Windows平台下的一种交互式对象技术。通常,OCX插件用于增强网页的功能,如播放媒体、执行...

    Firefox java支持版

    fireFOX 支持java功能版本,可替代IE浏览器,浏览JAVA网站。

    Firefox中支持ActiveX控件运行的研究报告

    要实现Firefox对ActiveX控件的支持,必须解决四个问题,包括如何创建和初始 化控件对象,如何在Firefox浏览器中显示和现场激活控件,如何使JavaScript能访问控 件的属性和方法以及如何捕获控件事件并将其转发给...

    Firefox 火狐浏览器安装包

    火狐浏览器(Mozilla Firefox)是一款由Mozilla基金会和志愿者共同开发的开源网络浏览器,以其高度定制性、安全性和性能而受到用户欢迎。以下是一份描述: 火狐浏览器是一款跨平台的开源网络浏览器,由Mozilla基金...

    Firefox火狐浏览器官方52.2.0esr-win32版本exe安装包

    《Firefox火狐浏览器52.2.0esr-win32版本详解》 Firefox火狐浏览器,由Mozilla基金会开发,是一款开源、免费的网络浏览器,以其强大的安全性、隐私保护和高度可定制性著称。本资源是Firefox 52.2.0esr-win32的官方...

    Firefox火狐浏览器官方52.1.1esr-mac版本dmg安装包

    《Firefox火狐浏览器52.1.1esr-mac版本的深度解析与安装指南》 Firefox火狐浏览器,作为一款开源、免费的网络浏览器,以其强大的安全性、隐私保护及高度自定义性深受用户喜爱。52.1.1esr(Extended Support Release...

    火狐Firefox24版本

    火狐Firefox是一款深受全球用户喜爱的开源网络浏览器,它的24版本在当时被视为一个重要的里程碑。这个版本的Firefox以其稳定性、安全性和性能优化为特点,是开发者和测试人员的理想选择。下面将详细介绍Firefox 24...

    Firefox火狐浏览器官方52.0b2-win32版本exe安装包

    标题中的“Firefox火狐浏览器官方52.0b2-win32版本exe安装包”指的是Mozilla Firefox的52.0b2预览版,专为Windows 32位操作系统设计的安装程序。Firefox是一款开源、免费的网络浏览器,以其安全、隐私保护和可定制性...

    Firefox火狐浏览器官方Setup 45.0-win64版本exe安装包

    2. **跨平台支持**:尽管这里提到的是win64版本,但Firefox实际上也支持Windows、macOS、Linux等多种操作系统,确保了多平台的兼容性。 3. **隐私保护**:Firefox在隐私保护方面表现出色,提供多种隐私浏览模式,如...

    Firefox 火狐浏览器24.0下载安装

    Firefox 火狐浏览器是一款由Mozilla基金会开发的开源网络浏览器,以其高度定制化、安全性以及对Web标准的良好支持而广受用户喜爱。在本文中,我们将详细探讨Firefox 24.0这一特定版本,以及如何在LoadRunner 11上...

    Firefox火狐浏览器官方49.0.2-win32版本exe安装包

    《Firefox火狐浏览器49.0.2-win32版本:深入解析与使用指南》 Firefox,又称为火狐浏览器,是由Mozilla基金会开发的一款开源、跨平台的网页浏览器。这款浏览器以其高度定制化、安全性和隐私保护功能而受到全球用户...

    Firefox火狐浏览器官方52.0-mac版本dmg安装包

    Firefox火狐浏览器是一款深受用户喜爱的开源网络浏览器,由Mozilla基金会开发并维护。这款浏览器以其强大的安全性、可定制性以及对Web标准的支持而闻名。在本文中,我们将深入探讨Firefox 52.0-mac版本的特性、安装...

    Firefox火狐浏览器官方52.9.0esr-win32版本exe安装包

    《Firefox火狐浏览器52.9.0esr-win32版本详解》 Firefox火狐浏览器,由Mozilla基金会开发,是一款开源、免费的网络浏览器,以其强大的安全性、隐私保护和高度可定制性著称。52.9.0esr(Extended Support Release)...

    Firefox火狐浏览器官方Setup 52.0.2-win64版本exe安装包

    《Firefox火狐浏览器52.0.2-win64版本安装详解》 Firefox火狐浏览器,作为一款全球知名的开源网络浏览器,以其强大的功能、高度的定制性和安全性深受用户喜爱。52.0.2-win64是Firefox针对Windows 64位系统的一个...

    Firefox火狐浏览器官方Setup 45.0.2-win64版本exe安装包

    《Firefox火狐浏览器45.0.2-win64版本:深入解析与使用指南》 Firefox,又称为火狐浏览器,是由Mozilla基金会开发的一款开源、免费的网络浏览器,以其强大的安全性和用户隐私保护功能,以及丰富的插件生态系统,...

    火狐firefox支持ocx

    标题中的“火狐Firefox支持OCX”指的是Mozilla Firefox浏览器能够加载和运行ActiveX控件(OCX),这是在Windows操作系统中常见的一种组件技术。ActiveX控件是微软开发的一种插件形式,允许网页或者应用程序嵌入各种...

    Firefox火狐浏览器官方52.0.1esr-win32版本exe安装包

    《Firefox火狐浏览器52.0.1esr-win32版本详解》 Firefox火狐浏览器,由Mozilla基金会开发,是一款开源、免费的网络浏览器,以其强大的安全性、隐私保护和高度可定制性著称。52.0.1esr是Firefox的一个特定版本,面向...

    Firefox火狐浏览器官方52.0.1-win32版本exe安装包

    《Firefox火狐浏览器52.0.1-win32版本:深入解析与使用指南》 Firefox火狐浏览器,由Mozilla基金会开发,是一款全球知名的开源网络浏览器。本文将围绕"Firefox火狐浏览器官方52.0.1-win32版本exe安装包"进行详细...

Global site tag (gtag.js) - Google Analytics