Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用c语言进行图像检索# byte[]imageData=null; 长字节大小=0; byteSize=_reader.GetBytes(_reader.GetOrdinal(sFieldName),0,null,0,0); imageData=新字节[字节大小]; 长字节读取=0; int curpos=0,chunkSize=500; while(字节读取_C#_Image_Stream - Fatal编程技术网

C# 用c语言进行图像检索# byte[]imageData=null; 长字节大小=0; byteSize=_reader.GetBytes(_reader.GetOrdinal(sFieldName),0,null,0,0); imageData=新字节[字节大小]; 长字节读取=0; int curpos=0,chunkSize=500; while(字节读取

C# 用c语言进行图像检索# byte[]imageData=null; 长字节大小=0; byteSize=_reader.GetBytes(_reader.GetOrdinal(sFieldName),0,null,0,0); imageData=新字节[字节大小]; 长字节读取=0; int curpos=0,chunkSize=500; while(字节读取,c#,image,stream,C#,Image,Stream,当“Image oImage=Image.FromStream((Stream)ms);”行执行时,代码会产生问题。……此行显示“参数无效”消息……。为什么会出现这种情况?帮助我。我想从数据库中检索图像…我在C#window vs05上工作…有人能帮我吗?字节[]包含值。这一切都很好,只是在执行这一行时出现了问题。在创建内存流之前,一个简单的if语句应该可以解决您的问题 byte[] imageData = null; long byteSize = 0; byteSize = _reader.

“Image oImage=Image.FromStream((Stream)ms);”行执行时,代码会产生问题。……此行显示“参数无效”消息……。为什么会出现这种情况?帮助我。我想从数据库中检索图像…我在C#window vs05上工作…有人能帮我吗?字节[]包含值。这一切都很好,只是在执行这一行时出现了问题。

在创建内存流之前,一个简单的if语句应该可以解决您的问题

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.FromStream
方法时没有必要将它强制转换到
流中;但是这些不会导致您的错误)。为了找到错误,我将执行以下操作:

  • 将字节数据写入文件,并尝试在图形程序中打开图像(以验证字节数据确实代表有效图像)。我猜这会失败
  • 检查将数据写入数据库的代码(可能执行与前一点相同的技巧;将其写入文件并尝试打开该文件)

是否已验证字节数组确实包含数据?
if (imageData.Length != 0)
{
  MemoryStream ms = new MemoryStream(imageData);
  Image oImage = Image.FromStream((Stream)ms);
  return oImage;
}

return null;