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

本文介绍了如何使用HTML5的Canvas元素结合JavaScript处理图片,包括灰化、翻转、去色、高亮和设单色值等操作。通过getImageData和putImageData方法,可以方便地操作画布上的图像。处理后的图像可通过canvas.toDataURL转换为base64字符串,然后保存到服务器或本地。

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

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

JavaScript代码复制内容到剪贴板
  1. ctx.getImageData(X,Y,W,H)       / /获取的ImageData  
  2. ctx.putImageData(X,Y,W,H)      / /将的ImageData绘在画布上  

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

JavaScript代码复制内容到剪贴板
  1. / **
  2. * @作者诺里斯堂
  3. * /  
  4. 变种  PS =  功能(配置){  
  5. / / $扩展(这一点,配置);  
  6. 返回 此 ;  
  7. }  
  8. PS.prototype = {  
  9. / /将图像灰化  
  10. 灰色:  功能(CTX,为imageData){  
  11. 无功  W = imageData.width,  
  12. H = imageData.height,  
  13. RET = ctx.createImageData(W,H);  
  14. 对  (我= 0;我
  15. {  
  16. 为  (J = 0;Ĵ
  17. {  
  18. 无功  指数=(I *高+ J)* 4;  
  19. 无功  红= imageData.data [指数];  
  20. 变种  绿色= imageData.data [索引1];  
  21. 无功  蓝色= imageData.data [索引2];  
  22. 无功  字母= imageData.data [指数3];  
  23. 变种  平均=(红+绿+蓝)/ 3;  
  24. ret.data [索引] =平均值;  
  25. ret.data [索引1] =平均值;  
  26. ret.data [索引2] =平均值;  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值