前端图像处理指南

计算机图像处理是一门很成熟的技术,任何一门可操作系统接口的语言都能很轻易的实现各种处理操作。但是前端限于浏览器环境和接口限制,处理起来会有诸多不便,这里所说的前端图像处理,是真的指**不借助任何后端服务**纯前端实现的图像处理。本文会介绍canvas位图处理,SVG矢量图和CSS3图像处理,重点是canvas,并且最后会附上一个小应用

图像滤镜处理

现在的朋友圈发个图都要用滤镜美一下,复古清纯胶片LOMO各种风格应有尽有。canvas提供了getImageData方法来获取图像上每一个像素点的RGBA信息,这样我们就能对图片进行像素级处理了。通过特定算法来重写imageData中的像素信息,然后用setImageData方法把新的数据重新绘制在canvas上,这样就可以实现图像滤镜打码加特效等一系列功能。

比如我们现在要实现一个复古滤镜:

// 复古滤镜处理算法:获取每个像素的RGB信息,并按特定权重返回其加权平均值
let sepiaFilter = function(imgData) {
  let d = imgData.data
  for (let i = 0; i < d.length; i += 4) {
    let r = d[i]
    let g = d[i + 1]
    let b = d[i + 2]
    d[i] = (r * 0.393) + (g * 0.769) + (b * 0.189) // red
    d[i + 1] = (r * 0.349) + (g * 0.686) + (b * 0.168) // green
    d[i + 2] = (r * 0.272) + (g * 0.534) + (b * 0.131) // blue
  }
  return imgData
}
//图像地址必须和当前页面同域,否则会报cross-origin错误 
img.src = ‘/img/[email protected]‘ 
img.onload = () => {
  ctx.drawImage(img, 0, 0) // 绘制原图
  let imgData = ctx.getImageData(0, 0, img.width, img.height) // 获取图片信息
  ctx.putImageData(sepiaFilter(imgData), 100, 0) // 绘制处理后图片
}

阅读全文:http://click.aliyun.com/m/9237/

时间: 2024-08-25 04:54:45

前端图像处理指南的相关文章

2015超实用的前端开发指南

[编者按]感谢@lenville对< A Baseline for Front-End [JS] Developers: 2015>的翻译,该文章全面而系统地介绍了前端开发者所应掌握的关键技术及最流行.实用的工具,尤其对于JS开发者大有裨益. 大约三年前,我写了一篇< 前端开发者的基本技能 >,嗯,那大概是我最出名的一篇文章.三年后,仍然有人在Twitter上@我询问如何开始学习前端知识. 在某种程度上,我曾经写下的文字历经了时间的考验:令我感到震惊的是,2012年我写的那篇文章并

你知道这些前端开发指南吗

JavaScript 记忆回到2009年,如果你在文章里读到类似“HTML5将会在2014年定稿使用”的预言,是否看起来那一天还很遥远?如果当时你这样想,你将要准备好迎接缓慢更新但是稳步向前的ES6(现在被称为ES2015,这个名称已经随处可见),也就是下一个版本的JavaScript.准备与ES6——啊不对,ES2015——接轨吧,毫无疑问,这是接下来在JavaScript领域中最重要的事情.ES6 classes.真正的隐私.更好的函数和参数.可引入(import)的模块以及许多其它特性,一

移动手机平台的HTML5前端优化指南

对于访问量大的网站来说,前端的优化是必须的,即使是优化1KB的大小对其影响也很大,下面来看看来自ISUX的米随随讲讲移动手机平台的HTML5前端优化,或许对你有帮助和启发. 概述 1. PC优化手段在Mobile侧同样适用 2. 在Mobile侧我们提出三秒种渲染完成首屏指标 3. 基于第二点,首屏加载3秒完成或使用Loading 4. 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB 5. Mobile侧因手机配置原因,除加载外渲染速度也是优化重点 6.

[转载]前端优化指南

转载自:毫秒必争,前端网页性能最佳实践-微软互联网开发支持 参考:Best Practices for Speeding Up Your Web Site-yahoo developer 你愿意为打开一个网页等待多长时间?我一秒也不愿意等.但是事实上大多数网站在响应速度方面都让人失望.现在越来越多的人开始建立自己的网站,博客,你的网页响应速度如何呢?在这篇文章中我们来介绍一下提高网页性能的最佳实践,以及相应的问题解决方案,让站长或者即将要成为站长的朋友了解如何去测试和提高网站响应速度,对自己的网

最全面的前端开发指南

HTML语义HTML5为我们提供了很多旨在精确描述内容的语义元素.确保你可以从它丰富的词汇中获益. <!-- bad --><div id="main"><div class="article"><div class="header"><h1>Blog post</h1><p>Published: <span>21st Feb, 2015</sp

前端资源教程合集

综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 En类资源汇总 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 免费的编程中文书籍索引 智能社 - 精通JavaScript开发 重新介绍 JavaScript(JS 教程) 麻省理工学院公开课:计算机科学及编程导论 JavaScript中的this陷阱的最全收集--没有之一 JS函数式编程指南 JavaScript Promise迷你书

看着看着就哭了的前端地址大全

原文地址:http://www.w3cfuns.com/notes/16438/db8e9e0bf80676f32b2cafb9b4932313.html 综合类 | 地址--- | --- 前端知识体系|http://www.cnblogs.com/sb19871023/p/3894452.html前端知识结构|https://github.com/JacksonTian/fksWeb前端开发大系概览|https://github.com/unruledboy/WebFrontEndStack

前端涉及的所有知识体系

资源教程: 综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 免费的编程中文书籍索引 智能社 - 精通JavaScript开发 重新介绍 JavaScript(JS 教程) 麻省理工学院公开课:计算机科学及编程导论 JavaScript中的this陷阱的最全收集--没有之一 JS函数式编程指南 JavaScript Promise迷你书(中

麦子学院-Web前端开发工程师系列培训教程

HTML+CSS基础入门1.课程介绍2.html的语法3.html的基本结构4.html的文档设置标记上(格式标记)5.html的文档设置标记下(文本标记)6.html图像标记img7.html超链接的使用8.html表格相关的标记9.html表格实战<简单的网页布局>10.html框架详解与框架布局实战11.HTML表单设计(上)12.HTML表单设计(下)13.使用CSS样式的方式14.定义CSS样式(CSS选择器)15.CSS常用属性(颜色属性)16.css常用属性(字体相关属性)17.