10大Js图像处理库

目录
  • 介绍
  • 1.Pica
  • 2. Lena.js
  • 3. Compressor.js
  • 4. Fabric.js
  • 5. Blurify
  • 6. Merge Images
  • 7. Cropper.js
  • 8. CamanJS
  • 9. MarvinJ
  • 10. Grade

介绍

对于很多人来说,使用JavaScript来处理图像不是一件非常简单的事情,幸运的是我们可以借助第三方的库来实现我们想要的功能,本篇文章就介绍一有哪些JavaScript图片处理库可供我们选择和使用!以下排名不分先后

1.Pica

此插件可减小大图像的上传大小,从而节省上传时间。它可以在浏览器中调整图像大小,而不会出现像素化现象并且相当快。它会从web-workers, web assembly, createImageBitmap and 纯js自动选择优秀的可用技术。

  • 减小大图像的上传大小,节省上传时间;
  • 在图像处理上节省服务器资源;
  • 在浏览器中生成缩略图;

https://github.com/nodeca/pica

2. Lena.js

这是一个包含22个滤镜的图像处理库

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

3. Compressor.js

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

https://github.com/fengyuanchen/compressorjs

4. Fabric.js

Fabric.js允许使用JavaScript在网页上的html<canvas>元素上轻松创建简单的形状,例如矩形,圆形,三角形和其他多边形,或者由许多路径组成的更复杂的形状。然后,Fabric.js将允许使用鼠标来操纵这些对象的大小,位置和旋转。还可以使用Fabric.js库更改这些对象的某些属性,例如颜色,透明度,网页上的深度位置,或选择这些对象的组。Fabric.js还允许将SVG图像转换为JavaScript数据,该数据可用于将其放入<canvas>元素。

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

5. Blurify

用于模糊图片,并具有从css模式到canvas模式的优雅降级支持。该插件在三种模式下工作:

  • css: 使用filter属性
  • canvas: 使用canvas导出base64
  • auto: css模式优先, 否则自动切换到canvas模式

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

https://github.com/JustClear/blurify

6. Merge Images

该库使可以轻松地将图像合成在一起。有时,使用画布可能会有些繁琐,特别是如果你只需要画布上下文来做相对简单的事情(例如将一些图像合并在一起)时。merge-images将所有重复性任务抽象为一个简单的函数调用。图像可以彼此重叠并重新放置。该函数返回一个Promise,该Promise解析为base64数据URI。同时支持浏览器和Node.js。

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

7. Cropper.js

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

https://github.com/fengyuanchen/cropperjs

8. CamanJS

它是Javascript的canvas操作库。它是易于使用的界面与先进,高效的图像/canvas编辑技术的结合。使用新的过滤器和插件很容易进行扩展,并且它具有广泛的图像编辑功能,并且这种功能还在不断增多。它完全独立于库,并且可以在NodeJS和浏览器中使用。可以选择一组预设滤镜或手动更改属性(例如亮度,对比度,饱和度)以获得所需的输出。

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

9. MarvinJ

MarvinJ是从Marvin Framework派生的纯JavaScript图像处理框架。MarvinJ对于许多不同的图像处理应用程序而言既简单又强大。Marvin提供了许多算法来操纵颜色和外观。Marvin还具备自动检测功能。使用基本图像功能(如边缘,拐角和形状)的能力是图像处理的基础。该插件有助于检测和分析对象的角点,从而确定场景中主要对象的位置。正因为如此,可以自动裁剪出对象。

https://github.com/gabrielarchanjo/marvinj

10. Grade

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

<div class="gradient-wrap">
    <img src="./samples/finding-dory.jpg" alt="" />
</div>
<div class="gradient-wrap">
    <img src="./samples/good-dinosaur.jpg" alt="" />
</div>
<script src="path/to/grade.js"></script>
<script type="text/javascript">
 window.addEventListener('load', function(){
 Grade(document.querySelectorAll('.gradient-wrap'))
 })
</script> 

以上就是10大Js图像处理库的详细内容,更多关于Js图像处理库的资料请关注我们其它相关文章!

(0)

相关推荐

  • JS预览图像将本地图片显示到浏览器上

    复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript"&

  • Javascript图像处理—图像形态学(膨胀与腐蚀)

    前言 上一篇文章,我们讲解了图像处理中的阈值函数,这一篇文章我们来做膨胀和腐蚀函数. 膨胀与腐蚀 说概念可能很难解释,我们来看图,首先是原图: 膨胀以后会变成这样: 腐蚀以后则会变成这样: 看起来可能有些莫名其妙,明明是膨胀,为什么字反而变细了,而明明是腐蚀,为什么字反而变粗了. 实际上,所谓膨胀应该指: 较亮色块膨胀. 而所谓腐蚀应该指: 较亮色块腐蚀. 上面图里面,由于背景白色是较亮色块,所以膨胀时就把黑色较暗色块的字压扁了--相反腐蚀时,字就吸水膨胀了-- 用数学公式表示就是: 说白了就是

  • JavaScript如何使用插值实现图像渐变

    描述由一个图形变化为另一个图形过程中的各个中间图形,称为渐变图形.可以利用插值算法求得各个渐变图形. 设在源图形和目标图形上各取M个对应坐标点,并分别保存到数组中,源图形用数组SX[M]和SY[M]保存M个坐标点(sx,sy),目标图形用数组DX[M]和DY[M]保存M个坐标点(dx,dy).若需生成源图形变换到目标图形中的N-1个渐变图形,采用简单的线性插值可以编写如下的二重循环: for (k=1;k<N;k++) for (i=0;i<M;i++) { x=(dx[i]-sx[i])/N

  • Javascript基础_嵌入图像的简单实现

    img元素允许我们在HTML文档里嵌入图像. 要嵌入一张图像需要使用src和alt属性,代码如下: <img src="../img/example/img-map.jpg" alt="Products Image" width="580" height="266" /> 显示效果: 1 在超链接里嵌入图像 img元素的一个常见用法是结合a元素创建一个基于图像的超链接,代码如下: <a href="

  • javascript实现图像循环明暗变化的方法

    本文实例讲述了javascript实现图像循环明暗变化的方法.分享给大家供大家参考.具体如下: <SCRIPT language=JavaScript> var d=0 function JM_fade(ob){ if (d==0) {ob.filters.alpha.opacity+=1} else {ob.filters.alpha.opacity-=1} if (ob.filters.alpha.opacity==100){d=1;} else if (ob.filters.alpha.

  • javascript图像处理—仿射变换深度理解

    前言 上一篇文章,我们讲解了图像金字塔,这篇文章我们来了解仿射变换. 仿射? 任何仿射变换都可以转换成,乘以一个矩阵(线性变化),再加上一个向量(平移变化). 实际上仿射是两幅图片的变换关系. 例如我们可以通过仿射变换对图片进行:缩放.旋转.平移等操作. 一个数学问题 在解决仿射问题前,我们来做一个数学题. 如图,对于点(x1, y1),相对于原点旋转一个角度a,那么这个点到哪里了呢? 我们将坐标系变成极坐标系,则点(x1, y1)就变成了(r, β),而旋转后变成(r, α+ β). 转回直角

  • JavaScript实现图像模糊化的方法实例

    前言 众所周知一幅完整的图像,是由红色.绿色.蓝色三个通道组成的.红色.绿色.蓝色三个通道的缩览图都是以灰度显示的.用不同的灰度色阶来表示" 红,绿,蓝"在图像中的比重.通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255. 模糊化方法: 就是将一个像素点的R(G,B)和它周围像素点的R(G,B)取出,然后取平均值再赋给这个像素点的R(G,B);这样就完成模糊化了: 例: 1        2        3 4        5        6 7        8   

  • Javascript图像处理—为矩阵添加常用方法

    前言 上一篇文章,我们定义了矩阵,这篇文章我们来给矩阵添加一些常用方法. toString方法 toString方法通常用作将对象转成字符串描述,所以我们将这一方法定义为输出矩阵元素. 复制代码 代码如下: Mat.prototype.toString = function(){ var tempData = this.data, text = "Mat("+ this.type +") = {\n", num = this.col * this.channel;

  • JavaScript图像延迟加载库Echo.js

    Echo 是一个独立的 JavaScript 懒加载图像的工具,快速.体积小(不足1k)和使用 HTML5 的 data- 属性.Echo 支持 IE8+ . 插件描述:和 Lazy Load 一样,Echo.js 也是一个用于图像延迟加载 JavaScript.不同的是 Lazy Load 是基于 jQuery 的插件,而 Echo.js 不依赖于 jQuery 或其他 JavaScript 库,可独立使用.并且 Echo.js 非常小巧,压缩后不足 1KB. 兼容性 Echo.js 使用了

  • JavaScript图像放大镜效果实现方法详解

    1. 基本四瓣花型图案 根据四瓣花卉线的参数方程: t= r*(1+sin(12*θ)/5)*(0.5+sin(4*θ)/2); x=t*cos(θ)); y=t*sin(θ)); 编写如下的HTML文件. <!DOCTYPE html> <head> <title>基本的四瓣花型图案</title> <script type="text/javascript"> function draw(id) { var canvas

随机推荐