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
但是反过来就无解了
》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》