2009-05-20 20 views
0
byte[] imageData = null; 
long byteSize = 0; 
byteSize = _reader.GetBytes(_reader.GetOrdinal(sFieldName), 0, null, 0, 0); 

imageData = new byte[byteSize]; 
long bytesread = 0; 
int curpos = 0, chunkSize = 500; 
while (bytesread < byteSize) 
{ 
    // chunkSize is an arbitrary application defined value 
    bytesread += _reader.GetBytes(_reader.GetOrdinal(sFieldName), curpos, imageData, curpos, chunkSize); 
    curpos += chunkSize; 
} 

byte[] imgData = imageData; 

MemoryStream ms = new MemoryStream(imgData); 
Image oImage = Image.FromStream((Stream)ms); 
return oImage; 

"Image oImage = Image.FromStream((Stream)ms);"行が実行されたときにコードが問題を生成します。この行には"Parameter is not valid"メッセージが表示されます。なぜそれが発生しますか?助けて。私はデータベースから画像を取得したいです...私はC#ウィンドウvs05 .....で働いています誰も私を助けることができますか? byte []は値を含みます。すべてうまくいきますが、この行が実行されると問題が発生します。イメージCを使用して取得

+0

があなたのバイト配列がないことを確認しました確かにデータを含んでいますか? –

答えて

1

簡単な文がメモリストリーム

if (imageData.Length != 0) 
{ 
    MemoryStream ms = new MemoryStream(imageData); 
    Image oImage = Image.FromStream((Stream)ms); 
    return oImage; 
} 

return null; 
0

を作成する前に、あなたの問題を解決する必要がある場合、私は本当にに配置されていないのMemoryStream以外の(このコードではすべてのエラーを発見し、それはする必要はありませんことはできませんImage.FromStreamメソッドに渡すときはStreamにキャストしますが、エラーは発生しません)。

  • ファイルにバイトデータを書き込み、グラフィックスプログラムでイメージを開こうとします(バイトデータが実際に有効なイメージを表していることを確認するために) )。私の推測はこれが失敗するということです。
  • (おそらく前のポイントと同じトリックを実行し、それをファイルに書き込み、ファイルを開こうとする)は、データベースにデータを書き込むコードを確認してください
関連する問題