jpeg
モジュールは、GR-PEACHマイコンに搭載されたJPEGコーデックを用いてJPEG画像のエンコード・デコードを行います。
image
{Object} エンコードする画像width
{number} 画像の幅(ピクセル数)。必須項目です。この値は偶数でなければなりません。height
{number} 画像の高さ(ピクセル数)。必須項目です。format
{string} 画像のピクセルフォーマット。"ycbcr422"
のみが指定可能です。必須項目です。bitmap
{AlignedBuffer} 画素データ。必須項目です。32バイトのアライメントである必要があります。callback
{Function} コールバック関数err
{Error|null} エラーオブジェクト(失敗のとき) または null
(成功のとき)。jpegData
{AlignedBuffer} JPEGデータを格納したバッファ。32バイトのアライメントです。ビットマップ画像をJPEG画像に変換します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。
var jpeg = require('jpeg');
var fs = require('fs');
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
var bitmap = new AlignedBuffer(480 * 272 * 2, 32);
/* bitmap に画像データを格納する... */
var image = {
width: 480,
height: 272,
format: 'ycbcr422',
bitmap: bitmap
};
jpeg.encode(image, function(err, jpegData) {
if (err) {
console.log(err);
return;
}
/* ファイルに保存する */
fs.writeFile('/sd/output.jpg', jpegData.toBuffer(), function(err) {
});
});
image
{Object} エンコードするビットマップ画像jpeg.encode()
の説明を参照jpeg.encode()
の同期版です。処理は同期で行われ、処理が完了するとJPEGデータを格納したバッファを返却します。失敗すると例外をスローします。
var jpeg = require('jpeg');
var fs = require('fs');
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
var bitmap = new AlignedBuffer(480 * 272 * 2, 32);
/* bitmap に画像データを格納する... */
var image = {
width: 480,
height: 272,
format: 'ycbcr422',
bitmap: bitmap
};
try {
var jpegData = jpeg.encodeSync(image);
/* ファイルに保存する */
fs.writeFileSync('/sd/output.jpg', jpegData.toBuffer());
} catch (err) {
console.log(err);
}
jpegData
{AlignedBuffer} JPEGデータを格納したバッファ。32バイトのアライメントである必要があります。config
{Object} デコード設定。width
{number} 出力するビットマップの幅(ピクセル数)。この値は偶数でなければなりません。height
{number} 出力するビットマップの高さ(ピクセル数)。format
{string} 出力するビットマップのピクセルフォーマット。"ycbcr422"
,"rgb565"
,"argb8888"
のいずれか。alpha
{number} ピクセルフォーマットが"argb8888"
のときの透過度。0
~255
の値。(省略時: 255
)callback
{Function} コールバック関数err
{Error|null} エラーオブジェクト(失敗のとき) または null
(成功のとき)。image
{Object} デコードされたビットマップ画像width
{number} 画像の幅(ピクセル数)。height
{number} 画像の高さ(ピクセル数)。format
{string} 画像のピクセルフォーマット。"ycbcr422"
,"rgb565"
,"argb8888"
のいずれか。bitmap
{AlignedBuffer} 画素データ。32バイトのアライメントです。JPEGデータをビットマップ画像に変換します。処理は非同期で行われ、処理が完了または失敗すると、コールバック関数が呼び出されます。
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
var jpeg = require('jpeg');
var fs = require('fs');
var config = {
width: 480,
height: 272,
format: 'argb8888',
alpha: 0xFF
};
fs.readFile('/sd/input.jpg', function(err, jpegData) {
if (err) {
/* ファイル読み込み失敗... */
console.log(err);
return;
}
var buf = new AlignedBuffer(jpegData, 32);
jpeg.decode(buf, config, function(err, image) {
if (err) {
/* デコード失敗... */
console.log(err);
return;
}
/* 成功... */
});
});
jpegData
{AlignedBuffer} JPEGデータを格納したバッファ。32バイトのアライメントである必要があります。config
{Object} デコード設定。width
{number} 出力するビットマップの幅(ピクセル数)。この値は偶数でなければなりません。height
{number} 出力するビットマップの高さ(ピクセル数)。format
{string} 出力するビットマップのピクセルフォーマット。"ycbcr422"
,"rgb565"
,"argb8888"
のいずれか。alpha
{number} ピクセルフォーマットが"argb8888"
のときの透過度。0
~255
の値。(省略時: 255
)width
{number} 画像の幅(ピクセル数)。height
{number} 画像の高さ(ピクセル数)。format
{string} 画像のピクセルフォーマット。"ycbcr422"
,"rgb565"
,"argb8888"
のいずれか。bitmap
{AlignedBuffer} 画素データ。32バイトのアライメントです。jpeg.decode()
の同期版です。処理は同期で行われ、処理が完了するとビットマップ画像を格納したオブジェクトを返却します。失敗すると例外をスローします。
var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
var jpeg = require('jpeg');
var fs = require('fs');
var config = {
width: 480,
height: 272,
format: 'argb8888',
alpha: 0xFF
};
try {
var jpegData = fs.readFileSync('/sd/input.jpg');
var buf = new AlignedBuffer(jpegData, 32);
var image = jpeg.decodeSync(buf, config);
/* 成功... */
} catch (err) {
console.log(err);
}