2012-01-20 230 views
33

現在、詰め込まれていないバイト配列をPNGまたはJPEGのいずれかに高性能に変換する必要があるアプリケーションで作業しています。高速である限り、画像フォーマットは重要ではありません。バイト配列をPNG/JPGに変換

私は.NETライブラリを試しましたが、パフォーマンスは非常に悪いです。誰もこれのための良いフリーウェアのライブラリをお勧めできますか?

EDIT:詳細は

byte[] bitmap = GetYourImage(); 

using(Image image = Image.FromStream(new MemoryStream(bitmap))) 
{ 
    image.Save("output.jpg", ImageFormat.Jpeg); // Or Png 
} 

ルックhere:バイトは[]あなたはこのような何かを行うことができる必要があり、8ビットグレースケールビットマップ

+0

このバイト配列は何を意味するのでしょうか?詳細を教えてください。 –

+0

あなたの質問は完全に明確ではありません。 'byte []'は何を表していますか?それは実際のイメージの内容ですか? JPG/PNG形式で保存したい非圧縮のビットマップですか? – vcsjones

答えて

55

です。

うまくいけば、これが役に立ちます。

+1

+1 ...それをやるための普遍的な方法。ただし、ユーザーの要件に応じて、ファイルシステムに保存する必要はありません。 –

+0

パーフェクト。大好きです!これは私が探していたものとまったく同じです。 –

+2

こんにちは、生画像をjpeg butgettingに変換しようとしています*パラメータが有効ではありません*例外。何か案は? 'byte [] bytes = System.IO.File.ReadAllBytes(@" C:\ Input.CR2 "); using(Image image = Image.FromStream(new MemoryStream(bytes))) { image.Save(@ "C:\ output.jpg"、ImageFormat.Jpeg); } ' –

0

私はImagemagickが好きです。 http://www.imagemagick.org/script/api.php

+0

これはプログラミングライブラリを使用するためのものですが、その場合のツールのコマンドラインは何ですか? – user2284570

+0

@ user2284570コマンドラインで使用している場合は、バイト配列ではなくファイルで作業します。あなたの入力がPNG(PNG署名の後ろにチャンク)であると仮定すると、 'convert input.png output.jpg'がおそらく動作します。 – ahoffer

1

この質問には二つの問題があります:あなたは、グレースケールのビットマップを持っていると仮定すると

は、次の2つの考慮すべき要素があります:JPGのみの場合

  1. を...品質のどのような損失が許容されます?
  2. pngの場合...どの程度の圧縮が許容されますか? (私が見てきたほとんどのものについては、選択肢があまりないので、この選択は無視しても過言ではありません)。この質問を考えている人にとっては意味がありません。はい、圧縮/パスを圧縮しようとした回数。 Ifranviewかそのプラグインのいくつかをチェックしてください。

これらの質問に答えて、元の回答を見つけることができます。

関連する問題