バイト配列からイメージを作成しようとしています。バイト配列は、指紋スキャナーによって作成されます(cf CaptureFrameメソッド)。 、私が手fwidthは256であり、私は以下のコードを実行するとfheightは255Image.FromStream:パラメータが無効です
ある
System.ArgumentExceptionの:パラメータが有効ではありません。
Dim fWidth As Short
Dim fHeight As Short
DFRProxy.DFRProxy.GetImageDimensions(fWidth, fHeight)
Dim imgBufLength As Integer = CInt(fWidth) * fHeight
Dim finger(imgBufLength) As Byte
Dim startCap As Short = DFRProxy.DFRProxy.StartCapture(0)
Dim capFrame As Short = DFRProxy.DFRProxy.CaptureFrame(0, finger, 0)
Using ms As New IO.MemoryStream(finger)
thisImage = Image.FromStream(ms)
End Using
エラーバイト配列は、65280個の要素を有する
thisImage = Image.FromStream(ms)
ラインで起こります。私はこれに似たいくつかのStackOverflow投稿を見直しましたが、何も機能していません。 FromStreamメソッドのuseEmbeddedColorManagement
とvalidateImageData
パラメータをFalseとTrueに設定しようとしましたが、これで問題は解決されません。
ArgumentException
の修正方法に関するご意見はありますか?
素晴らしいです。ありがとう。それはグレースケールの画像です。 SetPixelメソッドを使用する場合、グレースケール値(0-255)をシステムカラーに変換するにはどうすればよいですか? – blueshift
値がvの場合、新しいColor(v、v、v)はトリックを実行する必要があります(等しいRGBコンポーネントを持つ色を作成します。これは灰色である必要があります)。 – antlersoft
これが行いました。優れた答えをありがとう。私は何時間も夢中になってきました。 – blueshift