画像のメモリストリームに右バイトアレイを渡す
-
13-09-2020 - |
質問
バイト配列から画像を作成したい場合は、右バイト配列をメモリストリームに渡していると判断する方法。
MemoryStream mStream = new MemoryStream();
mStream.Write(byteArray, 0, byteArray.Lenth);
Image imgObj = Image.FromStream(mStream);
.
可能であれば、正しい画像の有効なバイトアレイであることがわかりますか?
解決 4
これは答え c#とgdi + のDummiesの画像処理
ot:私はコメントにリンクを置く方法がわからないので、私はそれを答えに置く。
他のヒント
これは本当に不吉な質問です、きっとあなたはあなたがどこからあなたのデータを読んでいるのか知っている必要がありますか?Image.FromStream
を使用して画像を作成すると、フォーマットを認識できない場合はArgumentException
がスローされます。ホイールを再発明するのではなく、誤ったデータストリームを識別するためにそのメカニズムを使用しないでください。
私は自分で少しのプログラム的な画像操作をしました。あなたがやりたいことは、あなたが修正しているイメージ形式の仕様を見つけて、あなたがあなたがあなたがすべきであることを確認してください。たとえば、PNGファイルはチャンクされ、各セクションでチェックサムがあるため、そのチャンクに何かを変更した場合は、セクションの最後にチェックサムを再計算する必要があります。
あなたの質問とあなたのコメントを読んだ後、あなたが試していることは、画像クラスに入れる前にバイト配列を操作して画像を操作することです。そして今、あなたはこの画像形式のためにあなたのバイト配列が破損していると主張しています。
だからこの質問に対する答えは次のようになります。あなたはそれを破損しました、あなたはそれを直します。
しかし本当にあなたの問題を解決するために、あなたの目標が写真自体を操作することであるならば、それを中間Image
にロードし、 Graphics
あなたの写真を操作するためのクラス。その後、あなたが好きな real 画像オブジェクトに結果を置きます。バイト配列に取り組むことについての煩わしさがありません。