@adeoweb/express-sharp 中文文档教程
express-sharp
express-sharp 为您的 express 应用程序添加实时图像处理路由。 图像使用 sharp 处理,这是一个用于调整图像大小的快速 Node.js 模块。
Installation
$ yarn add express-sharp
$ npm install express-sharp --save
有关其他安装说明,请参阅锐化安装。
Usage
示例 app.js:
'use strict'
const express = require('express')
const app = express()
const scale = require('express-sharp')
const options = {baseHost: 'mybasehost.com'}
app.use('/my-scale', scale(options))
app.listen(3000)
使用 400x400 像素渲染 http://mybasehost.com/image.jpg
:
GET /my-scale/resize/400?url=%2Fimage.jpg HTTP/1.1
Host: localhost:3000
--> invokes in background:
GET image.jpg HTTP/1.1
Host: mybasehost.com
与上面相同,但质量为 80%,webp< /code> 图像类型并启用渐进式:
GET /my-scale/resize/400?format=webp&quality=80&progressive=true&url=%2Fimage.jpg HTTP/1.1
Host: localhost:3000
Options
const scale = require('express-sharp')
app.use('/some-path', scale(options))
支持的选项:
baseHost
指定将从中请求图像的 HTTP 基本主机。
cropMaxSize
允许裁剪图像的最大长度(以像素为单位)(宽度或高度)。 注意:如果这个值太高,攻击者可以使用它来减慢你的服务器。 默认为 2000
cors
指定 CORS 选项,如 cors 文档 中所述。 示例:
app.use('/some-path', scale({
cors: {
origin: 'http://example.com'
}
}))
如果未指定,则发送 Access-Control-Allow-Origin: *
标头。
Path and query params
format
输出图像格式。
默认值:webp
如果支持,则请求图像的输出格式。
有效值:每个有效的锐化输出格式字符串,即jpeg
、gif
、webp
或 raw
。
progressive
仅适用于 jpeg 和 png 格式:
请参阅 jpeg 的清晰文档。
请参阅 png 的清晰文档。
使用 &progressive=true
启用逐行扫描。
quality
请参阅 sharp 文档。
质量是 1 到 100 之间的一个数字。
crop
请参阅 sharp 文档。
使用 &crop=true
启用锐利裁剪功能。
默认为“假”。
注意:width
和 height
参数都是作物工作所必需的。
gravity
请参阅 sharp 文档。
当裁剪选项被激活时,您可以指定裁剪的重力。
可选的 gravity
的可能属性是 北
、东北
、东
、东南
、南
、西南< /code>、
west
、northwest
、center
和 centre
。
默认为中心
;
url
原始图像的 URL/路径。
License
express-sharp
express-sharp adds real-time image processing routes to your express application. Images are processed with sharp, a fast Node.js module for resizing images.
Installation
$ yarn add express-sharp
$ npm install express-sharp --save
See sharp installation for additional installation instructions.
Usage
Example app.js:
'use strict'
const express = require('express')
const app = express()
const scale = require('express-sharp')
const options = {baseHost: 'mybasehost.com'}
app.use('/my-scale', scale(options))
app.listen(3000)
Render http://mybasehost.com/image.jpg
with 400x400 pixels:
GET /my-scale/resize/400?url=%2Fimage.jpg HTTP/1.1
Host: localhost:3000
--> invokes in background:
GET image.jpg HTTP/1.1
Host: mybasehost.com
Same as above, but with 80% quality, webp
image type and with progressive enabled:
GET /my-scale/resize/400?format=webp&quality=80&progressive=true&url=%2Fimage.jpg HTTP/1.1
Host: localhost:3000
Options
const scale = require('express-sharp')
app.use('/some-path', scale(options))
Supported options:
baseHost
Specify the HTTP base host from which images will be requested.
cropMaxSize
The maximum length in pixels (width or height) a cropped Image is allowed to have. Note: if this value is too high an attacker could use this to slow down your server. Default is 2000
cors
Specify CORS options as described in cors docs. Example:
app.use('/some-path', scale({
cors: {
origin: 'http://example.com'
}
}))
If not specified, a Access-Control-Allow-Origin: *
header is being sent.
Path and query params
format
Output image format.
Default: webp
if supported else the output format of the requested image.
Valid values: every valid sharp output format string, i.e. jpeg
, gif
, webp
or raw
.
progressive
only available for jpeg and png formats:
See sharp docs for jpeg.
See sharp docs for png.
Use &progressive=true
to enable progressive scan.
quality
See sharp docs.
quality is a Number between 1 and 100.
crop
See sharp docs.
Use &crop=true
to enable the sharp cropping feature.
Default is `false.
Note: Both width
and height
params are neccessary for crop to work.
gravity
See sharp docs.
When the crop option is activated you can specify the gravity of the cropping.
Possible attributes of the optional gravity
are north
, northeast
, east
, southeast
, south
, southwest
, west
, northwest
, center
and centre
.
Default is center
;
url
URL/path to original image.