0

バイト配列から Image を作成する場合、正しいバイト配列を MemoryStream に渡していることを確認する方法があります。

MemoryStream mStream = new MemoryStream();
mStream.Write(byteArray, 0, byteArray.Lenth);
Image imgObj = Image.FromStream(mStream);

可能であれば、画像の有効な byteArray である byteArray を修正するにはどうすればよいですか?

4

4 に答える 4

0

これが、C#とGDI+を使用したダミーの画像処理の答えです。

OT:コメントにリンクを張る方法がわからないので、答えに入れました。

于 2010-07-09T11:09:36.537 に答える
0

これは本当に不吉な質問です。データをどこから読み取っているのかを知っている必要がありますか? Image.FromStreamを使用してイメージを作成するArgumentException場合、フォーマットを認識できない場合は がスローされます。車輪を再発明するのではなく、誤ったデータ ストリームを識別するためにそのメカニズムを使用しないのはなぜですか?

于 2010-07-09T09:39:22.667 に答える
0

私は自分でプログラムによる画像操作を少し行いました。やりたいことは、変更しようとしている画像形式の仕様を見つけて、必要なことをすべて確実に行うことです。たとえば、png ファイルはチャンク化されており、各セクションにチェックサムがあるため、そのチャンクで何かを変更した場合は、セクションの最後でチェックサムを再計算する必要があります。

于 2010-07-09T10:18:59.373 に答える
0

質問とコメントを読んだ後、Image クラスに入れる前にバイト配列を操作して画像を操作しようとしていると思います。そして今、あなたはバイト配列がこの画像フォーマットで壊れていると主張し、それを修正する方法を教えてください。

したがって、この質問に対する答えは次のようになります。破損させたので、修正します。

しかし、問題を本当に解決するには、画像自体を操作することが目的の場合は、それを暫定的にロードしImage、クラスを使用しGraphicsて画像を操作します。その後、結果を好きな実像オブジェクトに入れます。バイト配列での作業に煩わされることなく、準備ができました。

于 2010-07-09T10:29:45.033 に答える