javascript截图研究积累

http://www.letuknowit.com/archives/76

data:image/png;base64是什么

我们还可以通过 data: url 方式来引用图像。Data urls 允许用一串 Base64 编码的字符串的方式来定义一个图片。其优点就是图片内容即时可用,无须再到服务器兜一圈。(还有一个优点是,可以将 CSS,JavaScript,HTML 和 图片全部封装在一起,迁移起来十分方便。)缺点就是图像没法缓存,图片大的话内嵌的 url 数据会相当的长:

var img_src = 'data:image/gif;base64,R0lGODlhCwALAIAAAAAA3pn/ZiH5BAEAAAEALAAAAAALAAsAAAIUhA+hkcuO4lmNVindo7qyrIXiGBYAOw==';

data:url 参考:

http://en.wikipedia.org/wiki/Data:_URL

通过firefox extension的filepicker 对象截图并把图片画到canvas上。


screengrab_fix_version-0.96.6c-fx.xpi


参考screengrab的写法

同理chrome也可能这么做

screengrab.ImageFilePicker.prototype = {
	show : function() {
		var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);

		fp.init(window, this.message, Components.interfaces.nsIFilePicker.modeSave);
		fp.defaultString = this.defaultFileName;
		fp.appendFilter("PNG", "*.png;*.gnp");
		fp.appendFilter("JPG", "*.jpg;*jpeg");
		if (this.selected == "image/png") {
			fp.filterIndex = 0;
		} else {
			fp.filterIndex = 1;
		}
        
		var result = fp.show();
		if (result == fp.returnOK || result == fp.returnReplace) {
			this.file =  fp.file;
			this.type = "image/png";
			this.mimeOptions = "";
			if (fp.filterIndex == 1) {
				this.type = "image/jpeg";
			}
		}
	},
    
    getFile : function() {
		if (this.file == null) {
			this.show();
		}
		return new screengrab.File(this.file, this.type);
    }
}

screengrab.SaveAction = function() {}
screengrab.SaveAction.prototype = {
	doAction: function(canvas) {
		var msg = document.getElementById("screengrab-strings").getString("SaveAsMessage");
	        var picker = new screengrab.ImageFilePicker(screengrab.prefs.defaultFileName() + "." + screengrab.prefs.format(), msg, screengrab.prefs.formatMimeType());
        	var file = picker.getFile();
		var dataUrl = canvas.toDataURL(file.mimeType, screengrab.prefs.formatQuality(file.mimeType));
        	file.saveDataUrl(dataUrl, true);
	}
}



》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

http://code.google.com/p/phantomjs/wiki/QuickStart

其实也是利用后台来处理截图,遇到需要登录的url或者会变化的广告,就不行了

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

http://www.cnblogs.com/xproer/archive/2011/02/19/1958398.html

利用ActivexObject + cab包,只能用于IE

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

http://forums.mozillazine.org/viewtopic.php?f=19&t=569938

在firefox extension中获取html dom或者执行html page中的js function

但是反过来就无解了

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》


posted @ 2012-08-09 16:57  lein.wang  Views(190)  Comments(0Edit  收藏  举报