예제 #1
0
    public static int Main(string[] args)
    {
        string filename    = args[0];
        string outfilename = args[1];

        using (var sfcts = FileChangeTransferSyntax.New())
        {
            FileChangeTransferSyntax fcts = sfcts.__ref__();
            //SimpleSubjectWatcher watcher = new SimpleSubjectWatcher(fcts, "FileChangeTransferSyntax");
            gdcm.TransferSyntax ts = new TransferSyntax(TransferSyntax.TSType.JPEGBaselineProcess1);
            fcts.SetTransferSyntax(ts);
            ImageCodec ic   = fcts.GetCodec();
            JPEGCodec  jpeg = JPEGCodec.Cast(ic);
            jpeg.SetLossless(false);
            jpeg.SetQuality(50); // poor quality !

            fcts.SetInputFileName(filename);
            fcts.SetOutputFileName(outfilename);
            if (!fcts.Change())
            {
                return(1);
            }
        }

        return(0);
    }
예제 #2
0
    static private void CompressIntoJPEG(string rawdicom, string jpegdicom)
    {
        using (var sfcts = FileChangeTransferSyntax.New())
        {
            // Need to retrieve the actual C++ reference, to pass to
            // SimpleSubjectWatcher:
            FileChangeTransferSyntax fcts    = sfcts.__ref__();
            SimpleSubjectWatcher     watcher = new SimpleSubjectWatcher(fcts, "FileChangeTransferSyntax");
            gdcm.TransferSyntax      ts      = new TransferSyntax(TransferSyntax.TSType.JPEGBaselineProcess1);
            fcts.SetTransferSyntax(ts);
            ImageCodec ic   = fcts.GetCodec();
            JPEGCodec  jpeg = JPEGCodec.Cast(ic);
            jpeg.SetLossless(false);
            jpeg.SetQuality(50); // poor quality !

            fcts.SetInputFileName(rawdicom);
            fcts.SetOutputFileName(jpegdicom);
            fcts.Change();
        }
    }
예제 #3
0
    public static int Main(string[] args)
    {
        if (args.Length < 2)
        {
            System.Console.WriteLine(" input.dcm output.dcm");
            return(1);
        }
        string filename    = args[0];
        string outfilename = args[1];

        ImageReader reader = new ImageReader();

        reader.SetFileName(filename);
        if (!reader.Read())
        {
            System.Console.WriteLine("Could not read: " + filename);
            return(1);
        }

        // The output of gdcm::Reader is a gdcm::File
        File file = reader.GetFile();

        // the dataset is the the set of element we are interested in:
        DataSet ds = file.GetDataSet();

        Image image = reader.GetImage();
        //image.Print( cout );

        ImageChangeTransferSyntax change   = new ImageChangeTransferSyntax();
        TransferSyntax            targetts = new TransferSyntax(TransferSyntax.TSType.JPEGBaselineProcess1);

        change.SetTransferSyntax(targetts);

        // Setup our JPEGCodec, warning it should be compatible with JPEGBaselineProcess1
        JPEGCodec jpegcodec = new JPEGCodec();

        if (!jpegcodec.CanCode(targetts))
        {
            System.Console.WriteLine("Something went really wrong, JPEGCodec cannot handle JPEGBaselineProcess1");
            return(1);
        }
        jpegcodec.SetLossless(false);
        jpegcodec.SetQuality(50);       // poor quality !
        change.SetUserCodec(jpegcodec); // specify the codec to use to the ImageChangeTransferSyntax

        change.SetInput(image);
        bool b = change.Change();

        if (!b)
        {
            System.Console.WriteLine("Could not change the Transfer Syntax");
            return(1);
        }

        ImageWriter writer = new ImageWriter();

        writer.SetImage((gdcm.Image)change.GetOutput());
        writer.SetFile(reader.GetFile());
        writer.SetFileName(outfilename);
        if (!writer.Write())
        {
            System.Console.WriteLine("Could not write: " + outfilename);
            return(1);
        }

        return(0);
    }
예제 #4
0
    public static int Main(string[] args)
    {
        if( args.Length < 2 )
          {
          System.Console.WriteLine( " input.dcm output.dcm" );
          return 1;
          }
        string filename = args[0];
        string outfilename = args[1];

        ImageReader reader = new ImageReader();
        reader.SetFileName( filename );
        if( !reader.Read() )
          {
          System.Console.WriteLine( "Could not read: " + filename );
          return 1;
          }

        // The output of gdcm::Reader is a gdcm::File
        File file = reader.GetFile();

        // the dataset is the the set of element we are interested in:
        DataSet ds = file.GetDataSet();

        Image image = reader.GetImage();
        //image.Print( cout );

        ImageChangeTransferSyntax change = new ImageChangeTransferSyntax();
        TransferSyntax targetts =  new TransferSyntax( TransferSyntax.TSType.JPEGBaselineProcess1 );
        change.SetTransferSyntax( targetts );

        // Setup our JPEGCodec, warning it should be compatible with JPEGBaselineProcess1
        JPEGCodec jpegcodec = new JPEGCodec();
        if( !jpegcodec.CanCode( targetts ) )
          {
          System.Console.WriteLine( "Something went really wrong, JPEGCodec cannot handle JPEGBaselineProcess1" );
          return 1;
          }
        jpegcodec.SetLossless( false );
        jpegcodec.SetQuality( 50 ); // poor quality !
        change.SetUserCodec( jpegcodec ); // specify the codec to use to the ImageChangeTransferSyntax

        change.SetInput( image );
        bool b = change.Change();
        if( !b )
          {
          System.Console.WriteLine( "Could not change the Transfer Syntax" );
          return 1;
          }

        ImageWriter writer = new ImageWriter();
        writer.SetImage( change.GetOutput() );
        writer.SetFile( reader.GetFile() );
        writer.SetFileName( outfilename );
        if( !writer.Write() )
          {
          System.Console.WriteLine( "Could not write: " + outfilename );
          return 1;
          }

        return 0;
    }