|
HTML5中增加的Canvas元素,配合JS灵活的语法,处理起图片变得异常简单,不需要在客户端用C/C++写一大堆代码,对于熟悉JS的程序员来说,只需要考虑处理图片的逻辑了。
canvas中如果想要处理图片就需要借助ImageData这个对象,就是将画布中某一区域中的图像以RGBA的方式保存下来,存成一个二维数组。
JavaScript代码复制内容到剪贴板
- ctx.getImageData(X,Y,W,H)
- ctx.putImageData(X,Y,W,H)
写了个简单的处理图像的类,可以翻转/灰化/去色/高亮/设单色值
通过一系列操作,渲染好图像后,就需要借助如下的代码将画布中的图像保存成图片
JavaScript代码复制内容到剪贴板
-
- 无功 数据= canvas.toDataURL();
-
- 变种 B64 = data.substring(22);
-
- $后(“save.aspx”,{数据:B64,名:文件名}, 函数(){
-
- });
save.aspx中的代码如下:
JavaScript代码复制内容到剪贴板
- 保护 无效 的Page_Load(对象发件人,EventArgs的发送)
- {
- 如果 (请求[ “名称” ]!= 空)
- {
- 字符串名称=请求[ “名称” ];
- 串SAVEPATH =使用Server.Mappath(“~/影像/输出/”);
- 尝试
- {
- 的FileStream FS = File.Create(SAVEPATH +“/”+名称);
- 字节 []字节= Convert.FromBase64String(请求[ “数据” ]);
- fs.Write(字节数,0,bytes.Length);
- fs.Close();
- }
- 赶上 (例外情况除外)
- {
- }
- }
- }
PS:由于沙箱的限制,想在浏览器端通过JS直接存为本地图片,似乎是不大可能,现在网上较为折中的方式为
window.location.href =“图像/八位字节流”+数据
但这种方式不能指定保存的文件名,在FF下默认是xxxxx.part
true
利用HTML5中Canvas处理并存储图片
爱思资源网
report
15825.5
HTML5中增加的Canvas元素,配合JS灵活的语法,处理起图片变得异常简单,不需要在客户端用C C++写一大堆代码,对于熟悉JS的程序员来说,只需要考虑处理图片的逻辑了。canvas中如果想要处理图片就需要借助ImageDat
|