node.js(クライアント側ではなくサーバー側)で画像の幅と高さを取得することは可能ですか?作成しているnode.jsライブラリで画像の幅と高さを見つける必要があります。
6 に答える
インストールするGraphicsMagick
かImageMagick
、まったく必要ない場合は、画像のサイズを決定するのはヘッダーを見るのと同じくらい簡単です。image-size
は、非常に使いやすい、上記の機能の純粋なjavascript実装です。
https://github.com/netroy/image-size
var sizeOf = require('image-size');
sizeOf('images/funny-cats.png', function (err, dimensions) {
console.log(dimensions.width, dimensions.height);
});
はい、これは可能ですが、 GraphicsMagickまたはImageMagickをインストールする必要があります。
私は両方を使用しましたが、GraphicsMagickの方がはるかに高速であることをお勧めできます。
プログラムとそのモジュールの両方をインストールしたら、幅と高さを取得するためにこのようなことを行います。
gm = require('gm');
// obtain the size of an image
gm('test.jpg')
.size(function (err, size) {
if (!err) {
console.log('width = ' + size.width);
console.log('height = ' + size.height);
}
});
https://github.com/nodeca/probe-image-size
さらに興味深い問題は、「リモートサーバーから完全なファイルをダウンロードせずに画像サイズを検出する方法」です。probe-image-size
役立ちます。もちろん、ローカルストリームもサポートしています。
純粋なJSで記述されており、大きな依存関係(ImageMagickなど)は必要ありません。
Calipersは、画像のサイズを決定できるもう1つの純粋なJavascriptライブラリです。
var sizeOf = require('image-size');
sizeOf(my_file_item.completeFilename, function (err, dimensions) {
try{
if(!err){
let image_dimensions = dimensions || "";
let width = 200; // we want 200
let height = parseInt(width/(image_dimensions.width/image_dimensions.height));
}else{
}
// console.log(ex);
}catch(ex){
}
});
Jimpを使用しました:https ://www.npmjs.com/package/jimp npm install --save jimp
const jimage1 = await Jimp.read(imgBuffer);
const jimage2 = await Jimp.read(imgUrl);
const width = jimage1.bitmap.width;
それは事実上ピクセルマッチのラッパーです