利用HTML5中Canvas处理并存储图片

时间:2023-02-10 20:29:31

    

      HTML5中增加的Canvas元素,配合JS灵活的语法,处理起图片变得异常简单,不需要在客户端用C/C++写一大堆代码,对于熟悉JS的程序员来说,只需要考虑处理图片的逻辑了。

 


 

      canvas中如果想要处理图片就需要借助ImageData这个对象,就是将画布中某一区域中的图像以RGBA的方式保存下来,存成一个二维数组。

    

   

     写了个简单的处理图像的类,可以翻转/灰化/去色/高亮/设单色值

    

 

     通过一系列操作,渲染好图像后,就需要借助如下的代码将画布中的图像保存成图片

    

    

    save.aspx中的代码如下:

   

 

   PS: 由于沙箱的限制,想在浏览器端通过JS直接存为本地图片,似乎是不大可能,现在网上较为折中的方式为

   window.location.href = "image/octet-stream" + data

   但这种方式不能指定保存的文件名,在FF下默认是xxxxx.part

   参照 : http://www.nihilogic.dk/labs/canvas2image/