rotate
rotate([angle], [options]) ⇒ Sharp
出力画像を、明示的な角度で回転するか、EXIF 方向タグに基づいて自動方向付けします。
角度が指定されている場合は、有効な正の角度の回転に変換されます。たとえば、-450 は 270 度の回転を生成します。
90 の倍数以外の角度で回転する場合は、背景色を背景オプションで指定できます。
角度が指定されていない場合は、EXIF データから決定されます。ミラーリングがサポートされており、反転操作の使用を推測できます。
角度なしで回転を使用すると、EXIF 方向タグがある場合は削除されます。
パイプラインごとに 1 回の回転のみ実行できます。同じパイプラインで以前に行われた回転の呼び出しは無視されます。
複数ページの画像は 180 度のみ回転できます。
回転、サイズ変更、および/または領域抽出を行う場合、メソッドの順序が重要です。たとえば、[.rotate(x).extract(y)] は [.extract(y).rotate(x)] とは異なる結果を生成します。
- エラー 無効なパラメータ
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
回転角度。 | |||
存在する場合、オプションの属性を持つオブジェクトです。 | |||
カラー モジュールによって解析され、赤、緑、青、アルファの値が抽出されます。 |
例
const pipeline = sharp()
.rotate()
.resize(null, 200)
.toBuffer(function (err, outputBuffer, info) {
// outputBuffer contains 200px high JPEG image data,
// auto-rotated using EXIF Orientation tag
// info.width and info.height contain the dimensions of the resized image
});
readableStream.pipe(pipeline);
例
const rotateThenResize = await sharp(input)
.rotate(90)
.resize({ width: 16, height: 8, fit: 'fill' })
.toBuffer();
const resizeThenRotate = await sharp(input)
.resize({ width: 16, height: 8, fit: 'fill' })
.rotate(90)
.toBuffer();
flip
flip([flip]) ⇒ Sharp
画像を x 軸を中心に垂直方向 (上下) にミラーリングします。回転がある場合は、常に回転の前に実行されます。
この操作は、複数ページの画像では正しく機能しません。
パラメータ | タイプ | デフォルト |
---|---|---|
例
const output = await sharp(input).flip().toBuffer();
flop
flop([flop]) ⇒ Sharp
y軸を中心に画像を水平方向(左右)にミラーリングします。これは、回転が行われる前に必ず発生します (回転が行われる場合)。
パラメータ | タイプ | デフォルト |
---|---|---|
例
const output = await sharp(input).flop().toBuffer();
affine
affine(matrix, [options]) ⇒ Sharp
画像に対してアフィン変換を実行します。この操作は、サイズ変更、抽出、回転(ある場合)の後に必ず実行されます。
長さ 4 の配列または 2x2 アフィン変換マトリックスを指定する必要があります。デフォルトでは、新しいピクセルは黒の背景で塗りつぶされます。background オプションを使用して背景色を指定できます。特定の補間を指定することもできます。補間オプションを sharp.interpolators オブジェクトの属性に設定します(例: sharp.interpolators.nohalo)。
2x2 マトリックスの場合、変換は次のようになります。
X = matrix[0, 0] * (x + idx) + matrix[0, 1] * (y + idy) + odx Y = matrix[1, 0] * (x + idx) + matrix[1, 1] * (y + idy) + ody
ここで、
- x と y は入力イメージの座標です。
- X と Y は出力画像内の座標です。
- (0,0) は左上隅です。
- エラー 無効なパラメータ
以降: 0.27.0
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
アフィン変換行列 | |||
存在する場合、オプションの属性を持つオブジェクトです。 | |||
カラー モジュールによって解析され、赤、緑、青、アルファの値が抽出されます。 | |||
入力水平オフセット | |||
入力垂直オフセット | |||
出力水平オフセット | |||
出力垂直オフセット | |||
補間器 |
例
const pipeline = sharp()
.affine([[1, 0.3], [0.1, 0.7]], {
background: 'white',
interpolator: sharp.interpolators.nohalo
})
.toBuffer((err, outputBuffer, info) => {
// outputBuffer contains the transformed image
// info.width and info.height contain the new dimensions
});
inputStream
.pipe(pipeline);
sharpen
sharpen([options], [flat], [jagged]) ⇒ Sharp
画像をシャープにします。
パラメータなしで使用すると、出力画像を高速かつ穏やかにシャープにします。
シグマが指定されている場合は、LAB カラー スペースで L チャネルのシャープニングをより低速で正確に実行します。「平坦な」(m1) 領域と「ギザギザの」(m2) 領域でのシャープニング レベルを細かく制御できます。
libvips シャープニング操作を参照してください。
- エラー 無効なパラメータ
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
存在する場合、次のオブジェクトです属性 | |||
ガウスマスクのシグマ。シグマ = 1 + 半径 / 2、0.000001 から 10 の間 | |||
「平坦」な領域に適用するシャープニングのレベル。0 から 1000000 まで | |||
「ギザギザ」な領域に適用するシャープニングのレベル。0 から 1000000 まで | |||
「平坦」と「ギザギザ」の間のしきい値。0 から1000000 | |||
明るさの最大量、0~1000000 | |||
暗くする最大量、0~ 1000000 | |||
(非推奨) options.m1 を参照してください。 | |||
(非推奨) options.m2 を参照してください。 |
例
const data = await sharp(input).sharpen().toBuffer();
例
const data = await sharp(input).sharpen({ sigma: 2 }).toBuffer();
例
const data = await sharp(input)
.sharpen({
sigma: 2,
m1: 0,
m2: 3,
x1: 3,
y2: 15,
y3: 15,
})
.toBuffer();
median
median([size]) ⇒ Sharp
中央値フィルターを適用します。パラメータなしで使用する場合、デフォルトのウィンドウは 3x3 です。
- エラー 無効なパラメータ
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
正方形マスクのサイズ: サイズ xサイズ |
例
const output = await sharp(input).median().toBuffer();
例
const output = await sharp(input).median(5).toBuffer();
blur
blur([sigma]) ⇒ Sharp
画像をぼかします。
パラメータなしで使用すると、高速 3x3 ボックスぼかし (ボックス線形フィルタと同等) を実行します。
シグマが指定されている場合は、より低速でより正確なガウスぼかしを実行します。
- エラー 無効なパラメータ
パラメータ | タイプ | 説明 |
---|---|---|
ガウスマスクのシグマを表す 0.3 から 1000 までの値。シグマ = 1 + 半径 / 2. |
例
const boxBlurred = await sharp(input)
.blur()
.toBuffer();
例
const gaussianBlurred = await sharp(input)
.blur(5)
.toBuffer();
flatten
flatten([options]) ⇒ Sharp
アルファ透明度チャンネルがある場合は、背景と結合してからアルファチャンネルを削除します。
removeAlpha も参照してください。
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
背景色、色によって解析されます モジュール、デフォルトは黒です。 |
例
await sharp(rgbaInput)
.flatten({ background: '#F0A703' })
.toBuffer();
unflatten
unflatten()
画像にアルファ チャネルがあり、すべての白のピクセル値が完全に透明になっていることを確認します。
白以外のピクセルの既存のアルファ チャネル値は変更されません。
この機能は実験的なものであり、API は変更される可能性があります。
: 0.32.1 以降
例
await sharp(rgbInput)
.unflatten()
.toBuffer();
例
await sharp(rgbInput)
.threshold(128, { grayscale: false }) // converter bright pixels to white
.unflatten()
.toBuffer();
gamma
gamma([gamma], [gammaOut]) ⇒ Sharp
ガンマ補正を適用するには、サイズ変更前のエンコード (暗くする) を 1/ガンマの係数で減らし、サイズ変更後のエンコード (明るくする) をガンマの係数で増やします。これにより、非線形色空間でサイズ変更された画像の明るさが向上します。JPEG および WebP 入力画像は、ガンマ補正を適用しても、読み込み時の縮小パフォーマンスの最適化は利用できません。
異なる出力ガンマ値を使用するには 2 番目の引数を指定します。指定しない場合は、どちらの場合も最初の値が使用されます。
- エラー 無効なパラメータ
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
1.0 から 3.0 の間の値。 | |||
1.0 から 3.0 の間の値。(オプション、デフォルトはガンマと同じ) |
negate
negate([options]) ⇒ Sharp
画像の「ネガ」を生成します。
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
アルファを否定するかどうかチャネル |
例
const output = await sharp(input)
.negate()
.toBuffer();
例
const output = await sharp(input)
.negate({ alpha: false })
.toBuffer();
normalise
normalise([options]) ⇒ Sharp
出力画像の輝度を拡張してダイナミック レンジ全体をカバーするようにすることで、コントラストを強化します。
ヒストグラム ベースのアプローチを使用し、1% から 99% のデフォルト範囲を使用して、極端なノイズに対する感度を低減します。
輝度値が下限パーセンタイルを下回ると、ゼロにクリッピングされて露出不足になります。上限パーセンタイルを超える輝度値は、最大ピクセル値にクリッピングされて露出オーバーになります。
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
このパーセンタイルより低い輝度値は露出不足になります。 | |||
輝度値が露出オーバーになるパーセンタイル。 |
例
const output = await sharp(input)
.normalise()
.toBuffer();
例
const output = await sharp(input)
.normalise({ lower: 0, upper: 100 })
.toBuffer();
normalize
normalize([options]) ⇒ Sharp
normalise の別のスペル。
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
このパーセンタイルより低い輝度値は露出不足になります。 | |||
輝度値が露出オーバーになるパーセンタイル。 |
例
const output = await sharp(input)
.normalize()
.toBuffer();
clahe
clahe(options) ⇒ Sharp
コントラスト制限適応ヒストグラム均等化 CLAHE を実行します。
これにより、一般に暗い詳細が強調され、画像の鮮明度が向上します。
- エラー 無効なパラメータ
以降: 0.28.3
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
検索ウィンドウの整数幅(ピクセル単位)。 | |||
検索ウィンドウの整数の高さ (ピクセル単位)。 | |||
明るさの整数レベル (0 から 100 まで)。0 はコントラスト制限を無効にします。 |
例
const output = await sharp(input)
.clahe({
width: 3,
height: 3,
})
.toBuffer();
convolve
convolve(kernel) ⇒ Sharp
指定されたカーネルで画像を畳み込みます。
- エラー 無効なパラメータ
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
カーネルの幅(ピクセル単位)。 | |||
カーネルの高さ(ピクセル単位)。 | |||
カーネル値を含む幅*高さの長さの配列。 | |||
カーネルのスケール(ピクセル単位)。 | |||
カーネルのオフセット(ピクセル単位)。 |
例
sharp(input)
.convolve({
width: 3,
height: 3,
kernel: [-1, 0, 1, -2, 0, 2, -1, 0, 1]
})
.raw()
.toBuffer(function(err, data, info) {
// data contains the raw pixel data representing the convolution
// of the input image with the horizontal Sobel operator
});
threshold
threshold([threshold], [options]) ⇒ Sharp
しきい値以上のピクセル値は 255 に設定され、それ以外の場合は 0 に設定されます。
- エラー 無効パラメータ
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
しきい値が適用されるレベルを表す 0 ~ 255 の範囲の値。 | |||
シングル チャネル グレースケールに変換します。 | |||
グレースケールの代替スペル。 |
boolean
boolean(オペランド、演算子、[オプション]) ⇒ Sharp
オペランド画像を使用してビット単位のブール演算を実行します。
この演算により、各ピクセルが入力画像の対応するピクセル間の選択されたビット単位のブール演算の結果である出力画像が作成されます。
- エラー 無効なパラメータ
パラメータ | タイプ | 説明 |
---|---|---|
画像データまたは画像ファイルへのパスを含む文字列を含むバッファ。 | ||
C 論理演算子 &、` のように、ビット単位の演算を実行するための and、or、または eor のいずれか | ||
生のピクセル データを使用する場合のオペランドについて説明します。 | ||
linear
linear([a], [b]) ⇒ Sharp
画像レベルを調整するには、線形式 a * input + b を画像に適用します。
単一の数値を指定すると、すべての画像チャネルに使用されます。数値の配列を指定する場合、配列の長さはチャネル数と一致する必要があります。
- エラー 無効なパラメータ
パラメータ | タイプ | デフォルト | 説明 |
---|---|---|---|
乗数 | |||
オフセット |
例
await sharp(input)
.linear(0.5, 2)
.toBuffer();
例
await sharp(rgbInput)
.linear(
[0.25, 0.5, 0.75],
[150, 100, 50]
)
.toBuffer();
recomb
recomb(inputMatrix) ⇒ Sharp
指定されたマトリックスで画像を再結合します。
- エラー 無効なパラメータ
以降: 0.21.1
パラメータ | タイプ | 説明 |
---|---|---|
3x3 組み換えマトリックス |
例
sharp(input)
.recomb([
[0.3588, 0.7044, 0.1368],
[0.2990, 0.5870, 0.1140],
[0.2392, 0.4696, 0.0912],
])
.raw()
.toBuffer(function(err, data, info) {
// data contains the raw pixel data after applying the matrix
// With this example input, a sepia filter has been applied
});
modulate
modulate([options]) ⇒ Sharp
明るさ、彩度、色相回転、明度を使用して画像を変換します。明るさと明度はどちらも輝度に作用しますが、明るさは乗算であるのに対し、明度は加算であるという違いがあります。
: 0.22.1
パラメータ | タイプ | 説明 |
---|---|---|
明るさ乗数 | ||
彩度乗数 | ||
色相回転の度数 | ||
明度加数 |
例
// increase brightness by a factor of 2
const output = await sharp(input)
.modulate({
brightness: 2
})
.toBuffer();
例
// hue-rotate by 180 degrees
const output = await sharp(input)
.modulate({
hue: 180
})
.toBuffer();
例
// increase lightness by +50
const output = await sharp(input)
.modulate({
lightness: 50
})
.toBuffer();
例
// decrease brightness and saturation while also hue-rotating by 90 degrees
const output = await sharp(input)
.modulate({
brightness: 0.5,
saturation: 0.5,
hue: 90,
})
.toBuffer();