データベース(mongodb)内の画像(640x640)から小さな(200x200)サムネイルを動的に生成して提供するNode.jsサーバーがあります。サムネイル作成にnode-imagemagickモジュールを使用しています。
私のコードはおよそ95%の時間で機能します。クライアント(iOS)では、サムネイル画像の約20分の1(またはそれ以下)が破損しています。
JPEG破損したJPEGデータ:データセグメントの途中で終了
破損した画像の場合、クライアントは画像の上位50%〜75%を表示し、残りは切り捨てられます。
動作は非決定的であり、破損している特定の画像はリクエストごとに変更されます。
次のコードを使用して、画像のサイズを変更し、サムネイルを出力しています。
im.resize({
srcData: image.imageData.buffer,
width: opt_width,
}, function(err, stdout) {
var responseHeaders = {};
responseHeaders['content-type'] = 'image/jpeg';
responseHeaders['content-length'] = stdout.length;
debug('Writing ', stdout.length, ' bytes.');
response.writeHead(200, responseHeaders);
response.write(stdout, 'binary');
response.end();
});
ここで何が間違っている可能性がありますか?
ノート: