ノード-gm + Imagemagickを使用してイメージを円形に切り抜こうとしました。Imagemagickを使用したノード-gm循環画像の切り取り
とにかく、黒い円を使ってマスクを作成しようとしました。
var original = 'app-server/photo.jpg';
var output = 'app-server/photo.png';
var maskPath = 'app-server/photo-mask.png';
gm(original)
.crop(233, 233,29,26)
.resize(80, 80)
.setFormat('png')
.write(output, function (err) {
console.log(err || 'cropped to target size');
gm(output)
.out('-size', '80x80')
.background('black')
.drawCircle(20,20, 0, 0)
.toBuffer('PNG',function (err, buffer) {
console.log(err || 'created circular black mask');
//docs say "a buffer can be passed instead of
//a filepath" but this is apparently false
//and say something unclear about using black/white colors for masking.
//I'm clearly lost
gm(output)
.mask(maskPath)
.write(output, function (err) {
console.log(err || 'applied circular black mask to image');
});
});
});
は、私は、これは、いくつかの空想の文字列コマンドの連結を介して行うことができます確信しているが、画像処理の腕前の私の不足にもかかわらず、私はまだきれいなコードを維持したいです。私は、node-gm関数を使用して解決策を探しています。私の試行よりも少ない操作で実行することをお勧めします。
Iはまた、機能がない成功を収めて、このコマンドの呼び出しチェーンに試してみた:私は(Y、H、X、W)の特定の位置にトリミングする必要があるので、これらの解決策もドン https://stackoverflow.com/a/999563/1267778
注」私のためのtの仕事: