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);

  • 相关阅读:
    扩欧(exgcd讲解)
    Django组件之forms
    Django组件之用户认证
    Django之中间件
    Django之cookie与session
    Django组件之分页器
    Django之Ajax
    Django之模型层2
    Django之模型层
    Django之模板层
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5226523.html
Copyright © 2011-2022 走看看