用JavaScript处理图像可能非常困难且繁琐。幸运的是,有许多库可以使事情变得简单得多。以下就是一些前端开发经常要使用到的图片处理库,和千锋广州前端小编一起来看看吧!

如果发现有用的东西,请尝试将其包装为所选框架的组成部分。这样,你将拥有一个具有声明式API的可重用组件,随时可以使用。

1、Pica

此插件可帮助你减小大图像的上传文件大小,从而节省上传时间。使你可以在浏览器中调整图像大小,而不会出现像素化并且相当快。它会从网络工作者,网络程序集,createImageBitmap和纯JS中自动选择最佳的可用技术。

Demo:http://nodeca.github.io/pica/demo/

Github:https://github.com/nodeca/pica

2、Lena.js

这个很酷的图像库很小,但有22个图像滤镜,非常好玩。你还可以创建新过滤器并将其添加到Github存储库。

Demo:https://fellipe.com/demos/lena-js/

讲解:https://ourcodeworld.com/articles/read/515/how-to-add-image-filters-photo-effects-to-images-in-the-browser-with-javascript-using-lena-js

Github:https://github.com/davidsonfellipe/lena.js

3、Compressor.js

这是一个简单的JS图像压缩器,它使用浏览器的本机canvas.toBlob API来处理图像压缩。这使你可以将其压缩输出,质量设置为0到1。

Demo:https://fengyuanchen.github.io/compressorjs/

Github:https://github.com/fengyuanchen/compressorjs

4、Fabric.js

Fabric.js允许你<canvas>使用JavaScript在网页的HTML 元素上轻松创建简单的形状(如矩形,圆形,三角形和其他多边形)或由许多路径组成的更复杂的形状。然后,Fabric.js将允许您使用鼠标来操纵这些对象的大小,位置和旋转。

也可以使用Fabric.js库更改这些对象的某些属性,例如它们的颜色,透明度,网页上的深度位置或选择这些对象的组。Fabric.js还允许您将SVG图像转换为JavaScript数据,该数据可用于将其放置到<canvas>元素上。

Demo:http://fabricjs.com/

教程:http://fabricjs.com/articles/

Github:https://github.com/fabricjs/fabric.js

5、图片模糊化

这是一个很小的(0〜2kb)库,用于模糊图片,并在各css模式之间提供了降级支持canvas。该插件在以下三种模式下工作:

css:使用filterproperty(default)

canvas:使用canvas导出base64

auto:css首先使用模式,否则canvas自动切换到模式

你只需要将图像,模糊值和模式传递给函数,即可简单有效地获得模糊图像。

Demo:https://justclear.github.io/blurify/

Github:https://github.com/JustClear/blurify

6、图像合并

该库可以帮助你轻松地将图像合成在一起,而不会弄乱画布。有时,使用画布可能会有些困难,尤其是在你只需要画布上下文来执行相对简单的操作(例如将某些图像合并到一起)时。merge-images将所有重复性任务抽象为一个简单的函数调用。

图像可以彼此重叠并重新放置。该函数返回一个Promise,该Promise解析为base64数据URI。同时支持浏览器和Node.js。

Github:https://github.com/lukechilds/merge-images

7、Cropper.js

该插件是一个简单的JavaScript图像裁剪器,可让你在交互式环境中裁剪,旋转,缩放和缩放图像。它还允许设置纵横比。

Demo:https://fengyuanchen.github.io/cropperjs/

Github:https://github.com/fengyuanchen/cropperjs

8、CamanJS

它是Javascript的画布操作库。它结合了易于使用的界面和先进,高效的图像/画布编辑技术。使用新的过滤器和插件很容易进行扩展,并且它具有广泛的图像编辑功能,并且这种功能还在不断增长。它完全独立于库,并且可以在NodeJS和浏览器中使用。

你可以选择一组预设滤镜或手动更改属性(例如亮度,对比度,饱和度)以获得所需的输出。

Demo:http://camanjs.com/examples/

官网:http://camanjs.com/

Github:https://github.com/meltingice/CamanJS/

9、MarvinJ

MarvinJ是派生自Marvin Framework的纯JavaScript图像处理框架。MarvinJ对于许多不同的图像处理应用程序而言既简单又强大。

Marvin提供了许多算法来操纵颜色和外观。Marvin还可以自动检测功能。使用基本图像功能(如边缘,拐角和形状)的能力是图像处理的基础。该插件有助于检测和分析对象的角点,从而确定场景中主要对象的位置。由于这些原因,可以自动裁剪出对象。

官网:https://www.marvinj.org/en/index.html

Github:https://github.com/gabrielarchanjo/marvinj

10、Grade

该JS库提供图像中的前2种主要颜色生成的互补渐变。这样一来,你的网站就可以使用从图片中导出的匹配渐变色来填充div标签了。这是一个易于使用的插件,可帮助你保持网站的外观美观。

这个插件是我个人非常喜欢的一个插件,因为我经历了很多麻烦才能获得该插件提供的类似输出。

HTML文件:

JS文件:

Demo:https://benhowdle89.github.io/grade/

Github:https://github.com/benhowdle89/grade

总结

希望你喜欢这篇文章。也欢迎你随时留下你的评论。千锋广州小编祝大家编码愉快!

cropper.js 图像旋转问题_快速提高前端开发效率:10个JavaScript图像处理库相关推荐

  1. 该页面仅以HTML格式保存_轻松实现页面自动刷新功能,提高前端开发效率

    作为一名前端,开发web页面是我们的本职工作.在完成一个页面开发的过程中,保存代码然后手动刷新页面查看效果,这样的动作需要重复无数次,虽然一次这样的动作可能只要花费几秒钟的时间,但是次数多了也挺浪费时 ...

  2. 这5个可以提高前端开发效率的 Chrome扩展程序,建议你尝鲜体验下

    扩展程序是个性化的小程序,可以为你的浏览器添加新功能.你可以通过 Chrome 应用商店添加扩展程序来定制 Chrome 使用体验. 以下是我用来保持专注和提高开发效率的五个 Chrome 扩展程序: ...

  3. cropper.js 图像旋转问题_JavaScript开源良心插件,纯前端网页图片剪裁插件——cropperjs...

    介绍 cropperjs是一款基于JavaScript的网页端图片裁剪插件,可能相对于图片预览来说,图片的裁剪使用场景貌似并不是很多,但是图片预览插件又要比裁剪插件容易找到,而且从实现难度上来说也不及 ...

  4. a标签download属性无效_使用这些 CSS 属性选择器来提高前端开发效率

    如题.但是不要担心,虽然属性选择器非常复杂和强大,但是它们很容易学习和使用.在本文中,我们将讨论它们是如何运行的,并给出一些如何使用它们的想法.通常将 HTML属性放在方括号中,称为属性选择器,如下: ...

  5. 参数构造错误 微信_快速掌握前端开发中的常见错误

    前言 今天我们来了解一下现在浏览器中支持的一些Error对象,如果你还在经常在捕获到错误的时候不知道该用哪个类型,总是习惯于去throw new Error('xx')的话,相信本文会帮你对error ...

  6. 【前端】使用wow.js这个插件(实现页面动画效果),提高前端开发效率。

    1.简介 有的页面在向下滚动的时候,有些元素会产生细小的动画效果.比如需要做到滚动条滑到某个位置时,才能显示动画. wow.js 依赖 animate.css,所以它支持 animate.css 多达 ...

  7. 【译】使用这些 CSS 属性选择器来提高前端开发效率!

    译者:前端小智 原文:www.smashingmagazine.com/2018/10/att- 属性选择器非常神奇.它们可以使你摆脱棘手的问题,帮助你避免添加类,并指出代码中的一些问题.但是不要担心 ...

  8. 基于腾讯 x5 开源库,提高 webView 开发效率,大概要节约你百分之六十的时间成本。该案例支持处理 js 的交互逻辑且无耦合、同时暴露进度条加载进度、可以监听异常 error 状态、支持视频播放

    YCWebView 项目地址:yangchong211/YCWebView 简介: 基于腾讯 x5 开源库,提高 webView 开发效率,大概要节约你百分之六十的时间成本.该案例支持处理 js 的交 ...

  9. 基于腾讯x5封源库,提高60%开发效率

    目录介绍 01.前沿说明 1.1 案例展示效果 1.2 该库功能和优势 1.3 相关类介绍说明 02.如何使用 2.1 如何引入 2.2 最简单使用 2.3 常用api 2.4 使用建议 03.js调 ...

最新文章

  1. 爬虫基础分享Scrapy框架流程图与安装
  2. 关于 PHP 与 MYSQL的链接
  3. js动态载入css文件,原生JS动态加载JS、CSS文件及代码脚本(示例代码)
  4. jenkins 部署文档
  5. Linux命令整合之find
  6. 普通类创建获取session 方式_Springboot系列之RestApi中获取枚举类属性的几种方式...
  7. 几种开源许可协议(转载)
  8. python如何调用tess_python下以api形式调用tesseract识别图片验证码
  9. AWVS14.7破解版免费获取
  10. 应用层协议 ——— HTTP协议
  11. 火车头采集器php,火车头采集器3.0采集图文教程
  12. canvas教程8-小球连线之碰壁则返
  13. 兴业数金C语言笔试,2021兴业数金校园招聘C语言开发工程师职位
  14. 理解计算机3D图形学中的坐标系变换
  15. 包裹侠查快递单号_包裹侠快递查询
  16. 武侠中的基本要素(武侠之奥义)
  17. 学习笔记整理:Photoshop软件应用-图层混合与样式
  18. Java基础 DAY15
  19. 深度优先和广度优先的理解
  20. springboot杂谈

热门文章

  1. python缓存技术_Python中整数的缓存机制讲解
  2. echarts怎么控制一个点沿着折线移动_计算机怎么识别图像中的直线?
  3. LVS+Keepalive 实现负载均衡高可用集群
  4. 字节跳动 Flink 单点恢复功能实践
  5. 开放下载!《ECS运维指南 之 windows系统诊断》
  6. 阿里巴巴与清华大学成立联合实验室,探索下一代人机自然交互
  7. Python面向对象(一)
  8. 聊聊《战魂铭人》的游戏设计
  9. 3D游戏开发套件指南(入门篇)
  10. 机器学习将在游戏开发中的6种应用