/// <summary>
    /// The main entry method called by the CSharp driver
    /// </summary>
    /// <param name="argv"></param>
    public static void AVTestImageWriters(String [] argv)
    {
        //Prefix Content is: ""

          // Image pipeline[]
          image1 = new vtkTIFFReader();
          image1.SetFileName((string)"" + (VTK_DATA_ROOT.ToString()) + "/Data/beach.tif");
          // "beach.tif" image contains ORIENTATION tag which is []
          // ORIENTATION_TOPLEFT (row 0 top, col 0 lhs) type. The TIFF []
          // reader parses this tag and sets the internal TIFF image []
          // orientation accordingly.  To overwrite this orientation with a vtk[]
          // convention of ORIENTATION_BOTLEFT (row 0 bottom, col 0 lhs ), invoke[]
          // SetOrientationType method with parameter value of 4.[]
          image1.SetOrientationType((uint)4);
          image1.Update();
          sp = new vtkStructuredPoints();
          sp.SetDimensions(image1.GetOutput().GetDimensions()[0],image1.GetOutput().GetDimensions()[1],image1.GetOutput().GetDimensions()[2]);
          sp.SetExtent(
          image1.GetOutput().GetExtent()[0],
          image1.GetOutput().GetExtent()[1],
          image1.GetOutput().GetExtent()[2],
          image1.GetOutput().GetExtent()[3],
          image1.GetOutput().GetExtent()[4],
          image1.GetOutput().GetExtent()[5]);
          sp.SetScalarType((int)image1.GetOutput().GetScalarType());
          sp.SetNumberOfScalarComponents((int)image1.GetOutput().GetNumberOfScalarComponents());
          sp.GetPointData().SetScalars((vtkDataArray)image1.GetOutput().GetPointData().GetScalars());
          luminance = new vtkImageLuminance();
          luminance.SetInput((vtkDataObject)sp);
          //[]
          // write to the temp directory if possible, otherwise use .[]
          //[]
          dir = ".";
          dir = TclToCsScriptTestDriver.GetTempDirectory();

          // make sure it is writeable first[]
          try
          {
         channel = new StreamWriter("" + (dir.ToString()) + "/test.tmp");
          tryCatchError = "NOERROR";
          }
          catch(Exception)
          {tryCatchError = "ERROR";}

        if(tryCatchError.Equals("NOERROR"))
          {
          channel.Close();
          File.Delete("" + (dir.ToString()) + "/test.tmp");
          tiff1 = new vtkTIFFWriter();
          tiff1.SetInputConnection((vtkAlgorithmOutput)image1.GetOutputPort());
          tiff1.SetFileName((string)"" + (dir.ToString()) + "/tiff1.tif");
          tiff2 = new vtkTIFFWriter();
          tiff2.SetInputConnection((vtkAlgorithmOutput)luminance.GetOutputPort());
          tiff2.SetFileName((string)"" + (dir.ToString()) + "/tiff2.tif");
          bmp1 = new vtkBMPWriter();
          bmp1.SetInputConnection((vtkAlgorithmOutput)image1.GetOutputPort());
          bmp1.SetFileName((string)"" + (dir.ToString()) + "/bmp1.bmp");
          bmp2 = new vtkBMPWriter();
          bmp2.SetInputConnection((vtkAlgorithmOutput)luminance.GetOutputPort());
          bmp2.SetFileName((string)"" + (dir.ToString()) + "/bmp2.bmp");
          pnm1 = new vtkPNMWriter();
          pnm1.SetInputConnection((vtkAlgorithmOutput)image1.GetOutputPort());
          pnm1.SetFileName((string)"" + (dir.ToString()) + "/pnm1.pnm");
          pnm2 = new vtkPNMWriter();
          pnm2.SetInputConnection((vtkAlgorithmOutput)luminance.GetOutputPort());
          pnm2.SetFileName((string)"" + (dir.ToString()) + "/pnm2.pnm");
          psw1 = new vtkPostScriptWriter();
          psw1.SetInputConnection((vtkAlgorithmOutput)image1.GetOutputPort());
          psw1.SetFileName((string)"" + (dir.ToString()) + "/psw1.ps");
          psw2 = new vtkPostScriptWriter();
          psw2.SetInputConnection((vtkAlgorithmOutput)luminance.GetOutputPort());
          psw2.SetFileName((string)"" + (dir.ToString()) + "/psw2.ps");
          pngw1 = new vtkPNGWriter();
          pngw1.SetInputConnection((vtkAlgorithmOutput)image1.GetOutputPort());
          pngw1.SetFileName((string)"" + (dir.ToString()) + "/pngw1.png");
          pngw2 = new vtkPNGWriter();
          pngw2.SetInputConnection((vtkAlgorithmOutput)luminance.GetOutputPort());
          pngw2.SetFileName((string)"" + (dir.ToString()) + "/pngw2.png");
          jpgw1 = new vtkJPEGWriter();
          jpgw1.SetInputConnection((vtkAlgorithmOutput)image1.GetOutputPort());
          jpgw1.SetFileName((string)"" + (dir.ToString()) + "/jpgw1.jpg");
          jpgw2 = new vtkJPEGWriter();
          jpgw2.SetInputConnection((vtkAlgorithmOutput)luminance.GetOutputPort());
          jpgw2.SetFileName((string)"" + (dir.ToString()) + "/jpgw2.jpg");
          tiff1.Write();
          tiff2.Write();
          bmp1.Write();
          bmp2.Write();
          pnm1.Write();
          pnm2.Write();
          psw1.Write();
          psw2.Write();
          pngw1.Write();
          pngw2.Write();
          jpgw1.Write();
          jpgw2.Write();
          File.Delete("" + (dir.ToString()) + "/tiff1.tif");
          File.Delete("" + (dir.ToString()) + "/tiff2.tif");
          File.Delete("" + (dir.ToString()) + "/bmp1.bmp");
          File.Delete("" + (dir.ToString()) + "/bmp2.bmp");
          File.Delete("" + (dir.ToString()) + "/pnm1.pnm");
          File.Delete("" + (dir.ToString()) + "/pnm2.pnm");
          File.Delete("" + (dir.ToString()) + "/psw1.ps");
          File.Delete("" + (dir.ToString()) + "/psw2.ps");
          File.Delete("" + (dir.ToString()) + "/pngw1.png");
          File.Delete("" + (dir.ToString()) + "/pngw2.png");
          File.Delete("" + (dir.ToString()) + "/jpgw1.jpg");
          File.Delete("" + (dir.ToString()) + "/jpgw2.jpg");
        }

          viewer = new vtkImageViewer();
          viewer.SetInputConnection((vtkAlgorithmOutput)luminance.GetOutputPort());
          viewer.SetColorWindow((double)255);
          viewer.SetColorLevel((double)127.5);
          viewer.Render();

        //deleteAllVTKObjects();
    }