示例#1
0
  public static int Main(string[] args)
    {
    string file1 = args[0];
    Mpeg2VideoInfo info = new Mpeg2VideoInfo(file1);
    System.Console.WriteLine( info.StartTime );
    System.Console.WriteLine( info.EndTime );
    System.Console.WriteLine( info.Duration );
    System.Console.WriteLine( info.AspectRatio );
    System.Console.WriteLine( info.FrameRate );
    System.Console.WriteLine( info.PictureWidth );
    System.Console.WriteLine( info.PictureHeight );

    ImageReader r = new ImageReader();
    //Image image = new Image();
    Image image = r.GetImage();
    image.SetNumberOfDimensions( 3 );
    DataElement pixeldata = new DataElement( new gdcm.Tag(0x7fe0,0x0010) );

    System.IO.FileStream infile =
      new System.IO.FileStream(file1, System.IO.FileMode.Open, System.IO.FileAccess.Read);
    uint fsize = gdcm.PosixEmulation.FileSize(file1);

    byte[] jstream  = new byte[fsize];
    infile.Read(jstream, 0 , jstream.Length);

    SmartPtrFrag sq = SequenceOfFragments.New();
    Fragment frag = new Fragment();
    frag.SetByteValue( jstream, new gdcm.VL( (uint)jstream.Length) );
    sq.AddFragment( frag );
    pixeldata.SetValue( sq.__ref__() );

    // insert:
    image.SetDataElement( pixeldata );

    PhotometricInterpretation pi = new PhotometricInterpretation( PhotometricInterpretation.PIType.YBR_PARTIAL_420 );
    image.SetPhotometricInterpretation( pi );
    // FIXME hardcoded:
    PixelFormat pixeltype = new PixelFormat(3,8,8,7);
    image.SetPixelFormat( pixeltype );

    // FIXME hardcoded:
    TransferSyntax ts = new TransferSyntax( TransferSyntax.TSType.MPEG2MainProfile);
    image.SetTransferSyntax( ts );

    image.SetDimension(0, (uint)info.PictureWidth);
    image.SetDimension(1, (uint)info.PictureHeight);
    image.SetDimension(2, 721);

    ImageWriter writer = new ImageWriter();
    gdcm.File file = writer.GetFile();
    file.GetHeader().SetDataSetTransferSyntax( ts );
    Anonymizer anon = new Anonymizer();
    anon.SetFile( file );

    MediaStorage ms = new MediaStorage( MediaStorage.MSType.VideoEndoscopicImageStorage);

    UIDGenerator gen = new UIDGenerator();
    anon.Replace( new Tag(0x0008,0x16), ms.GetString() );
    anon.Replace( new Tag(0x0018,0x40), "25" );
    anon.Replace( new Tag(0x0018,0x1063), "40.000000" );
    anon.Replace( new Tag(0x0028,0x34), "4\\3" );
    anon.Replace( new Tag(0x0028,0x2110), "01" );

    writer.SetImage( image );
    writer.SetFileName( "dummy.dcm" );
    if( !writer.Write() )
      {
      System.Console.WriteLine( "Could not write" );
      return 1;
      }

    return 0;
    }
示例#2
0
    public static int Main(string[] args)
    {
        string         file1 = args[0];
        Mpeg2VideoInfo info  = new Mpeg2VideoInfo(file1);

        System.Console.WriteLine(info.StartTime);
        System.Console.WriteLine(info.EndTime);
        System.Console.WriteLine(info.Duration);
        System.Console.WriteLine(info.AspectRatio);
        System.Console.WriteLine(info.FrameRate);
        System.Console.WriteLine(info.PictureWidth);
        System.Console.WriteLine(info.PictureHeight);

        ImageReader r = new ImageReader();
        //Image image = new Image();
        Image image = r.GetImage();

        image.SetNumberOfDimensions(3);
        DataElement pixeldata = new DataElement(new gdcm.Tag(0x7fe0, 0x0010));

        System.IO.FileStream infile =
            new System.IO.FileStream(file1, System.IO.FileMode.Open, System.IO.FileAccess.Read);
        uint fsize = gdcm.PosixEmulation.FileSize(file1);

        byte[] jstream = new byte[fsize];
        infile.Read(jstream, 0, jstream.Length);

        SmartPtrFrag sq   = SequenceOfFragments.New();
        Fragment     frag = new Fragment();

        frag.SetByteValue(jstream, new gdcm.VL((uint)jstream.Length));
        sq.AddFragment(frag);
        pixeldata.SetValue(sq.__ref__());

        // insert:
        image.SetDataElement(pixeldata);

        PhotometricInterpretation pi = new PhotometricInterpretation(PhotometricInterpretation.PIType.YBR_PARTIAL_420);

        image.SetPhotometricInterpretation(pi);
        // FIXME hardcoded:
        PixelFormat pixeltype = new PixelFormat(3, 8, 8, 7);

        image.SetPixelFormat(pixeltype);

        // FIXME hardcoded:
        TransferSyntax ts = new TransferSyntax(TransferSyntax.TSType.MPEG2MainProfile);

        image.SetTransferSyntax(ts);

        image.SetDimension(0, (uint)info.PictureWidth);
        image.SetDimension(1, (uint)info.PictureHeight);
        image.SetDimension(2, 721);

        ImageWriter writer = new ImageWriter();

        gdcm.File file = writer.GetFile();
        file.GetHeader().SetDataSetTransferSyntax(ts);
        Anonymizer anon = new Anonymizer();

        anon.SetFile(file);

        MediaStorage ms = new MediaStorage(MediaStorage.MSType.VideoEndoscopicImageStorage);

        UIDGenerator gen = new UIDGenerator();

        anon.Replace(new Tag(0x0008, 0x16), ms.GetString());
        anon.Replace(new Tag(0x0018, 0x40), "25");
        anon.Replace(new Tag(0x0018, 0x1063), "40.000000");
        anon.Replace(new Tag(0x0028, 0x34), "4\\3");
        anon.Replace(new Tag(0x0028, 0x2110), "01");

        writer.SetImage(image);
        writer.SetFileName("dummy.dcm");
        if (!writer.Write())
        {
            System.Console.WriteLine("Could not write");
            return(1);
        }

        return(0);
    }