ここでチュートリアルに従おうとしています:
http://www.rexcardan.com/2014/10/evil-dicom-basics/
DICOM ファイルを処理して画像を表示します。チュートリアルでは、ファイル パスを処理するために DICOMObject.Open() メソッドが呼び出されます。私の問題は、インテリセンスがこれを拾わないことです。誰でもこれを支援できますか?
このバージョンをダウンロードしました:
https://github.com/rexcardan/Evil-DICOM
編集
以下を使用します。
var dcm = DICOMObject.Read(@"C:\file\path\filename.dcm");
すべてのコードをステップ実行するDICOMObject
と、この時点まで正常に機能しているように見えます。
public static IDICOMElement ReadElementImplicitLittleEndian(DICOMBinaryReader dr)
{
var tag = TagReader.ReadLittleEndian(dr);
var vr = TagDictionary.GetVRFromTag(tag);
int length = LengthReader.ReadLittleEndian(VR.Null, dr);
var data = DataReader.ReadLittleEndian(length, dr, TransferSyntax.IMPLICIT_VR_LITTLE_ENDIAN);
var el = ElementFactory.GenerateElement(tag, vr, data, TransferSyntax.IMPLICIT_VR_LITTLE_ENDIAN);
return el;
}
コードが到達したとき:
int length = LengthReader.ReadLittleEndian(VR.Null, dr);
length
~2GBint
のを返します。1919252000 bytes
次に、コードは次のようにステップします。
var data = DataReader.ReadLittleEndian(length, dr, TransferSyntax.IMPLICIT_VR_LITTLE_ENDIAN);
読み取るバイトがあるかどうかを確認し(存在する)、読み取りバイトに移動します。
public byte[] ReadBytes(int count)
{
byte[] buffer = new byte[count];
_binaryReader.Read(buffer, 0, count);
return buffer;
}
byte[] buffer = new byte[count];
コード内で実際の例外が発生する場所です。処理できるバイト数をテストしましたが、必要なバイト数の.6 - .7 GB
半分にも満たないようです。必要なものをすべて受け入れるためにバッファを拡張する方法はありますか?