Nodejsネットワーク画像を画像ストリームに変換する

WBOY
リリース: 2023-05-25 13:24:56
オリジナル
985 人が閲覧しました

最新の Web アプリケーションでは、ネットワーク上の画像をローカルの画像ストレージに変換し、処理するために従来の方法を依然として使用している古い Web サイトやアプリケーションもいくつかあります。ただし、Node.js 環境では、ネットワーク イメージをイメージ ストリームに変換することで、簡単にサーバーに直接保存できます。

この記事では、Node.js を使用してネットワーク イメージをイメージ ストリームに変換し、ファイルまたはデータベースに保存する方法について説明します。

まず、ネットワーク画像と画像ストリームの変換プロセスを処理するために、いくつかの Node.js モジュールをインストールする必要があります。以下は、インストールする必要があるモジュールのリストです:

  1. request – ネットワークから画像データを取得するために使用されます
  2. sharp – 画像処理ライブラリ。画像をストリームに変換するために使用されます。およびその他の形式

npm コマンドを使用して、これら 2 つのライブラリをインストールします。

npm install request sharp
ログイン後にコピー

このような簡単なインストールの後、これら 2 つの Node.js モジュールを使用して、ネットワーク イメージを映像ストリーム。以下はサンプル コードです。

const request = require('request');
const sharp = require('sharp');

const url = 'https://yourwebsite.com/image.jpg';
const options = {
  url: url,
  encoding: null
};

request.get(options, (err, response, buffer) => {
  if (err) throw err;
  
  sharp(buffer)
    .png()
    .toBuffer((err, data, info) => {
      if (err) throw err;
      
      // 在此处,我们可以将data写入文件或数据库
      // 例如,如果要将图片存储到文件夹中:
      // fs.writeFileSync('test.png', data);
      
      // 或者,如果要将图片存储到MongoDB数据库中:
      // const collection = db.collection('images');
      // collection.insertOne({ data: data });
    });
});
ログイン後にコピー

このサンプル コードでは、まずリクエスト ライブラリを使用して、指定された URL から画像データを読み込みます。 encodingnull として指定したのは、テキストまたは JSON 形式に変換するのではなく、元のバイナリ画像データを取得する必要があるためです。画像データを取得した後、sharp モジュールを使用して画像データを PNG 形式のストリームに変換し、後続の操作で保存または処理できるようにします。

上記のコード例では、ストリームをファイルまたは MongoDB データベースに書き込むことができます。ストリーム データをファイルに書き込むには、fs モジュールの fs.writeFileSync() 関数を使用して新しいファイルを作成し、ストリーム データを書き込みます。ストリーミング データを MongoDB データベースに書き込むには、まず MongoDB 接続を作成し、次にコレクション (mycollection など) を選択して、次の insertOne() 関数を呼び出す必要があります。追加するデータベース データがデータベースに書き込まれます。ここでのデータは、上記のストリームによって生成された Buffer インスタンス オブジェクト データです。

これで、ネットワーク イメージをイメージ ストリームに変換し、Node.js 環境で保存または処理する方法がわかりました。これは、ネットワーク イメージを処理する必要がある Web アプリケーションに非常に役立ちます。イメージ ストリームを別の形式に変換する前に、圧縮、拡大縮小、回転などの他の操作をイメージ ストリームに対して実行できることに注意してください。

以上がNodejsネットワーク画像を画像ストリームに変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!