把一张图片裁剪得左右空白部分对称,图片背景为白色。这件事情说来也简单,读取图片的像素,分别检测左右空白部分的宽度,然后裁剪到一样即可 。

接下来就涉及到读取图片像素的问题了,发现了一个好用的工具get-pixels,可以读取图片像素并返回数组。

安装

npm install --save get-pixels
  • 1
  • 1

目前支持PNG, JPEG和GIF三种格式的图片。

用法

var getPixels = require("get-pixels")getPixels("lena.png", function(err, pixels) {if(err) {console.log("Bad image path")return}console.log(pixels)
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

如上是读取数据的过程,返回值pixels是一个ndarray对象。如下是一个JPG图片的输出示例:

{ data: <Buffer ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ... >,shape: [ 560, 508, 4 ],stride: [ 4, 2240, 1 ],offset: 0 }
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

其中data是一维数组,描述颜色的RGBA值,shape表示数组维度和各个维度的大小, 该图片长宽分别为560和508,第三个维度表示RGBA值。stride是数组各个维度的步长,offset表示起始值。 
可以通过下面的函数遍历ndarray:

getPixels("lena.png", function(err, pixels) {if(!err) {console.log(pixels.get(0,0,0));//读取位置(0,0)处的R值。}
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

值得注意的是,对于JPG和PNG图片,返回的是三维数组[width, height, channels]。但对于GIF,则是一个四维数组[numFrames, width, height, 4]。

这样,就可以采集图片的像素进行处理,配合gm工具,可以对图片进行一些操作了。

nodejs读取图片像素相关推荐

  1. nodejs读取图片并将二进制数据转换成base64格式

    首先,使用nodejs进行数据读取,需要用到nodejs的fs模块进行数据读取: fs.readFile('你的资源路径','binary',function(err,data){if(err){co ...

  2. Opencv读取图片像素值

    #include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...

  3. python读取图片像素矩阵

    1.PIL库 import numpy as np from PIL import Image image = Image.open('test.jpg') mat= np.array(image) ...

  4. 获取图片像素颜色,转换为CSS3 box-shadow显示

    原理: 1.使用FileReader 读取图片 2.使用canvas 的 getImageData 获取图片像素信息 3.将像素信息转换为CSS3 box-shadow 代码: <!DOCTYP ...

  5. plt,cv2图片像素值的立体显示

    读取三通道图片的像素,并在对应像素位置显示出 下面的3D图像是一个平面的原因是,这个对同一张图片进行像素差的计算, 若换成其他图片,则可出现下面图片的情况 ax1.contourf是画出相对于那个方向 ...

  6. 将图片读取为像素格式

    使用python有两种方法: 使用scipy.misc 使用imageio #可以使用scipy.misc和imageio中的任何一种,这里我使用scipy.misc, #所以我注释掉了imageio ...

  7. nodejs将图片的像素值提取出来将RGBA转换成16位彩色

    nodejs将图片的像素值提取出来将RGBA转换成16位彩色 RGBA转16位彩色的原理 RGBA由4*8bit组成(255, 255, 255,255),16位彩色为2*8bit组成.16位彩色需要 ...

  8. java读取图片大小和像素

    1.参数类型 MultipartFile file; 2.获取图片大小(单位:B) long size = file.getSize(); 3.获取图片像素(单位:px) BufferedImage ...

  9. python:【一文学会】批量读取图片、替换背景图中的像素位置、批量添加文本

    **导语:**有时候为了提升效率节省时间,我们需要对文件夹中的图片进行批量处理.由于工作和学习所需,新接触Python,并且实现批量图片操作. 本文处理效果: 以及这样: 正文开始 步骤:实现一张背景 ...

最新文章

  1. R语言绘制分块区域热力图
  2. for循环递减_判断语句_循环语句
  3. Delphi2010使用TImage打开jpeg图片错误的处理
  4. SpringBatch处理适配器ItemProcessorAdapter详解
  5. 1.5 编程基础之循环控制 21 角谷猜想--方法二
  6. js实现excel块拖拉数据_小程序导出数据到excel表,借助云开发云函数实现excel数据的保存...
  7. 东哥再见!我打算 6 月份离职
  8. Tomcat下访问HTML页面乱码的解决方法
  9. 腾讯即将发布区块链游戏,网友大呼求别再养猫养狗了!
  10. python 汉字转拼音拼音转汉字
  11. 如何把两块硬盘数据迁移到另一块硬盘
  12. iOS开发APP瘦身之PDF图片资源加载框架
  13. 什么是跨域及怎么解决跨域问题?
  14. python程序设计从基础到开发电子书_Python核心编程从入门到开发实战(pdf+txt+epub+azw3+mobi电子书在线阅读下载)...
  15. python中breakpoint什么意思_Python breakpoint
  16. 服务器安卓系统安装教程,云服务器安装安卓系统
  17. 绝对女神 - Introduction
  18. Linux下的terminal多窗口开启及切换
  19. 如何用foobar200转换无损wma!
  20. JAVA8 Stream的系列操作,Optional使用---- java养成

热门文章

  1. 用html制作搜狗搜索,详解基于搜狗搜索开发的微信公众号的爬虫系统(C#)
  2. k8s 1.24.0版本使用nfs-provisioner4.0.0动态创建PV
  3. Android 多媒体(音乐播放器)
  4. Callback--EarlyStopping
  5. 数字化转型是新瓶装旧酒吗?
  6. NestJS 7.x 折腾记: (4) Swagger接入及相关用法
  7. 元宇宙浪潮下,数智人拒绝“标品”
  8. 计算机读不了硬盘分区,电脑开机后读不到硬盘怎么办
  9. 计算机知识方面的类目标识,专利文献种类标识代码标准
  10. 两个字母组成的拼音,域名注册备用