imagemagick-native中文文档|imagemagick-native js中文教程|解析
节点图像魔术本机
ImageMagick的用于Node的Magick++绑定。
特征
- 本地绑定到 C/C++ Magick++ 库
- 异步、同步和流 API
- 支持
convert
,identify
,composite
,等实用功能
目录
例子
转换格式
通过质量控制从一种格式转换为另一种格式:
fs;
原始JPEG:
转换为 PNG:
质量 100 | 质量 50 | 质量 1 |
---|---|---|
图片由David Yu 提供。
模糊
模糊图像:
fs;
变成
调整大小
通过指定width
和 来调整图像大小height
。共有三种调整大小样式:
aspectfill
: 默认。生成的图像将恰好是指定的大小,并且可能会被裁剪。aspectfit
:缩放图像,使其不必被裁剪。fill
:挤压或拉伸图像,使其完全填充指定的大小。
fs;
原来的:
调整大小:
纵横比 | 方面适合 | 充满 |
---|---|---|
图片由克里斯托夫提供。
旋转、翻转和镜像
旋转和翻转图像,并将两者结合起来进行镜像:
fs;
原来的:
修改的:
旋转 90 度 | 旋转 180 度 | 翻动 | 翻转 + 旋转 180 度 = 镜像 |
---|---|---|---|
图片由比尔·格雷西提供。
API 参考
转换(选项,[回调])
转换提供的缓冲区options.srcData
并返回缓冲区。
该options
参数可以具有以下值:
{
srcData: required. Buffer with binary image data
srcFormat: optional. force source format if not detected (e.g. 'ICO'), one of http://www.imagemagick.org/script/formats.php
quality: optional. 1-100 integer, default 75. JPEG/MIFF/PNG compression level.
trim: optional. default: false. trims edges that are the background color.
trimFuzz: optional. [0-1) float, default 0. trimmed color distance to edge color, 0 is exact.
width: optional. px.
height: optional. px.
density optional. Integer dpi value to convert
resizeStyle: optional. default: 'aspectfill'. can be 'aspectfit', 'fill'
aspectfill: keep aspect ratio, get the exact provided size.
aspectfit: keep aspect ratio, get maximum image that fits inside provided size
fill: forget aspect ratio, get the exact provided size
gravity: optional. default: 'Center'. used to position the crop area when resizeStyle is 'aspectfill'
can be 'NorthWest', 'North', 'NorthEast', 'West',
'Center', 'East', 'SouthWest', 'South', 'SouthEast', 'None'
format: optional. output format, ex: 'JPEG'. see below for candidates
filter: optional. resize filter. ex: 'Lagrange', 'Lanczos'. see below for candidates
blur: optional. ex: 0.8
strip: optional. default: false. strips comments out from image.
rotate: optional. degrees.
flip: optional. vertical flip, true or false.
debug: optional. true or false
ignoreWarnings: optional. true or false
}
笔记
callback
可以提供一个可选参数,在这种情况下convert
将异步运行。完成后,callback
将使用错误和结果缓冲区调用:
imagemagick;
还有一个流版本:
fs;
识别(选项,[回调])
标识提供的缓冲区srcData
并返回一个对象。
该options
参数可以具有以下值:
{
srcData: required. Buffer with binary image data
debug: optional. true or false
ignoreWarnings: optional. true or false
}
callback
可以提供一个可选参数,在这种情况下identify
将异步运行。完成后,callback
将使用错误和结果对象调用:
imagemagick;
该方法返回一个类似于以下内容的对象:
format: 'JPEG' width: 3904 height: 2622 depth: 8 density : width : 300 height : 300 exif: orientation: 0 // if none exists or e.g. 3 (portrait iPad pictures)
quantizeColors(选项)
从提供的缓冲区中将图像量化为指定数量的颜色srcData
并返回一个数组。
该options
参数可以具有以下值:
{
srcData: required. Buffer with binary image data
colors: required. number of colors to extract, defaults to 5
debug: optional. true or false
ignoreWarnings: optional. true or false
}
该方法返回一个类似于以下内容的数组:
r: 83 g: 56 b: 35 hex: '533823' r: 149 g: 110 b: 73 hex: '956e49' r: 165 g: 141 b: 111 hex: 'a58d6f'
复合(选项,[回调])
将提供options.compositeData
的缓冲区options.srcData
与由指定的重力提供的缓冲区组合在一起,options.gravity
并返回一个缓冲区。
该options
参数可以具有以下值:
{
srcData: required. Buffer with binary image data
compositeData: required. Buffer with binary image data
gravity: optional. Can be one of 'CenterGravity' 'EastGravity' 'ForgetGravity' 'NorthEastGravity' 'NorthGravity' 'NorthWestGravity' 'SouthEastGravity' 'SouthGravity' 'SouthWestGravity' 'WestGravity'
debug: optional. true or false
ignoreWarnings: optional. true or false
}
callback
可以提供一个可选参数,在这种情况下composite
将异步运行。完成后,callback
将使用错误和结果缓冲区调用:
imagemagick;
这个库目前只提供这些,如果你想要更多,请尝试node-imagemagick。
getConstPixels(选项)
获取提供的矩形区域的像素。
该options
参数可以具有以下值:
{
srcData: required. Buffer with binary image data
x: required. x,y,columns,rows provide the area of interest.
y: required.
columns: required.
rows: required.
}
用法示例:
// retrieve first pixel of imagevar pixels = imagemagick;
返回:
red: 65535 green: 65535 blue: 65535 opacity: 65535
每个颜色值的大小都是imagemagick.quantumDepth
位。
量子深度
返回 ImageMagick 的 QuantumDepth,它是在编译时定义的。
例如:16
版本
以字符串形式返回 ImageMagick 的版本。
例如:’6.7.7′
安装
Linux / Mac OS X
安装ImageMagick的与安装该模块前头。在 CentOS 6 和 Mac OS X Lion、Ubuntu 12.04 上使用 ImageMagick 6.7.7 进行测试。
brew install imagemagick
or
sudo yum install ImageMagick-c++ ImageMagick-c++-devel
or
sudo apt-get install libmagick++-dev
确保您可以在 PATH 中找到 Magick++-config。然后:
npm install imagemagick-native
安装说明
- RHEL/CentOS:如果
node-imagemagick-native
官方 RPM 库中没有提供所需的 ImageMagick版本,请尝试-last
Les RPM de Remi 提供的版本,例如:
sudo yum remove -y ImageMagick
sudo yum install -y http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo yum install -y --enablerepo=remi ImageMagick-last-c++-devel
- Mac OS X:您可能需要先安装
pkgconfig
:
brew install pkgconfig
视窗
在 Windows 7 x64 上测试。
-
仅安装 Python 2.7.3 2.7.3 没有其他工作很正常!
如果您使用 Cygwin,请确保您没有在 Cygwin 安装程序中安装 Python,因为对于使用哪个版本会有一些混淆。
-
(仅限 64 位)安装 Windows 7 64 位 SDK
-
安装Imagemagick dll binary x86 Q16或Imagemagick dll binary x64 Q16,在安装过程中检查库和包含。
然后:
npm install imagemagick-native
性能 – 简单的缩略图创建
imagemagick: 16.09ms per iteration
imagemagick-native: 0.89ms per iteration
详情请参阅node test/benchmark.js
。
注意: node-imagemagick-native
的主要优点是它直接使用 ImageMagick 的 API,而不是通过执行其命令行工具之一。这意味着当在库中花费的时间很少时它会快得多,否则会更少。有关讨论,请参阅问题 #46。
贡献
该项目遵循“OPEN Open Source”理念。如果您提交拉取请求并合并它,您很可能会获得对该存储库的提交访问权限。
许可证(麻省理工学院)
版权所有 (c) Masakazu Ohtsuka http://maaash.jp/
特此授予任何人免费获得本软件和相关文档文件(“软件”)副本的许可,不受限制地处理本软件,包括但不限于使用、复制、修改、合并的权利、发布、分发、再许可和/或出售软件的副本,并允许向其提供软件的人员这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或重要部分中。
该软件“按原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任承担责任,无论是在合同诉讼、侵权行为或其他方面,由软件或软件的使用或使用或其他原因引起的或与之相关的软件。