JavaScriptネイティブ画像処理

読者の皆さん、こんにちは!



どういうわけか、node.jsで実行されているプロジェクトで画像処理が必要になりました。 そして、私はファイルをダウンロードし、フォルダーに入れてモジュールとして接続しました。 しかし、いや、自然の中にそのような人はいませんでした。 そのため、 node-imagemagickを使用する必要がありました。 しかし、今の投稿はこのライブラリに関するものではありません。



そのようなライブラリを作りたいと思ったものについての投稿は、私がダウンロードし、プロジェクトにファイルをアップロードし、モジュールを接続し、すべてが機能します! よくできました。 gif 'okの真のサポートは実装されていませんが、ライブラリの完成に興味を持ち支援する巨大なコミュニティを期待しています。



彼はそれを単純なimageLib.js呼び 、それをgithubに投稿しましたが、MITの下にあります。



私は速度を測定しませんでしたが、理由はありませんでした。既存のすべての速度よりも動作が遅いことは明らかです。 しかし、アイデアのために、それは価値がありました。



次に、PNG画像を読み取ってから、この画像に200 x 200ピクセルのサイズのキャンバスに黒いフレームと長方形を挿入する例を示します。



var imageLib = require('./imageLib.js'); imageLib('./images/trees.png').pngToData(function() { var that = this; imageLib(200, 200).create(function() { var x, y; for(x=20; x < 180; x++) { for(y=20; y < 40; y++) { this.setPixel(x, y, 255, 0, 0, 255); // black } } for(y=0; y < this.height; y++) { this.setPixel(0, y, 255, 0, 0, 255); this.setPixel(this.width-1, y, 255, 0, 0, 255); } for(x=0; x < this.width; x++) { this.setPixel(x, 0, 255, 0, 0, 255); this.setPixel(x, this.height-1, 255, 0, 0, 255); } this.pasteTo(that, 10, 10, true); that.toPng('./images/trees_samp.png'); }); });
      
      







ライブラリを使用して、JPEG、PNG画像の読み取りと書き込み、およびサイズ変更を行うことができます。 ピクセルの色とアルファチャネルを確認したり、上書きしたりすることもできます。 まあ、それに応じて別の画像をコピーします。



関数の完全なリストとその例は、モジュールページにあります。



github.com GitHub.comリンク: github.com/lampaa/imageLib



nodejs node.jsへのリンク: node.js



All Articles