zoukankan      html  css  js  c++  java
  • DicomIoException: Requested 132 bytes past end of fixed length stream.

    今天在用DicomFile.Open(Stream s)这个接口时,遇到一个异常:
         DicomIoException: Requested 132 bytes past end of fixed length stream.

    详细原因我们看下源代码就非常清楚:
    public bool Require(uint count, ByteSourceCallback callback, object state) {
    lock (_lock) {
    if ((_stream.Length - _stream.Position) >= count)
    return true;

    throw new DicomIoException("Requested {0} bytes past end of fixed length stream.", count);
    }
    }

    当时的Stream的Position位于流末尾,即Length-Position等于0, 因此抛出这个异常。


    解决的方法非常easy:
    首先把Stream定位到DICOM的起始位置。


    相似代码例如以下:
      var stream = new MemoryStream();
                using (var f = File.Open(@"1.2.156.112605.75006881735343.1369658682.4.4.1.dcm", FileMode.Open))
                {
                    f.CopyTo(stream);
                }
                stream.Seek(0, SeekOrigin.Begin);
                var df = Dicom.DicomFile.Open(stream);

  • 相关阅读:
    HTML_from
    HTML_img
    python_Django默认转换器
    python_虚拟环境
    python_正则表达式
    mysql_pymysql模块
    mysql_权限管理
    mysql_子查询
    sudo权限造成的故障
    22.Linux定时任务
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5226523.html
Copyright © 2011-2022 走看看