示例#1
0
 public void CreateColorRamp(int nStartIndex, ColorEntry startcolor, int nEndIndex, ColorEntry endcolor)
 {
     GdalPINVOKE.ColorTable_CreateColorRamp(swigCPtr, nStartIndex, ColorEntry.getCPtr(startcolor), nEndIndex, ColorEntry.getCPtr(endcolor));
     if (GdalPINVOKE.SWIGPendingException.Pending)
     {
         throw GdalPINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#2
0
 public void SetColorEntry(int entry, ColorEntry centry)
 {
     GdalPINVOKE.ColorTable_SetColorEntry(swigCPtr, entry, ColorEntry.getCPtr(centry));
     if (GdalPINVOKE.SWIGPendingException.Pending)
     {
         throw GdalPINVOKE.SWIGPendingException.Retrieve();
     }
 }
示例#3
0
        public int GetColorEntryAsRGB(int entry, ColorEntry centry)
        {
            int ret = GdalPINVOKE.ColorTable_GetColorEntryAsRGB(swigCPtr, entry, ColorEntry.getCPtr(centry));

            if (GdalPINVOKE.SWIGPendingException.Pending)
            {
                throw GdalPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
示例#4
0
        public ColorEntry GetColorEntry(int entry)
        {
            IntPtr     cPtr = GdalPINVOKE.ColorTable_GetColorEntry(swigCPtr, entry);
            ColorEntry ret  = (cPtr == IntPtr.Zero) ? null : new ColorEntry(cPtr, false, ThisOwn_false());

            if (GdalPINVOKE.SWIGPendingException.Pending)
            {
                throw GdalPINVOKE.SWIGPendingException.Retrieve();
            }
            return(ret);
        }
示例#5
0
 public static HandleRef getCPtrAndSetReference(ColorEntry obj, object parent) {
   if (obj != null)
   {
     obj.swigParentRef = parent;
     return obj.swigCPtr;
   }
   else
   {
     return new HandleRef(null, IntPtr.Zero);
   }
 }
示例#6
0
 public static HandleRef getCPtrAndSetReference(ColorEntry obj, object parent)
 {
     if (obj != null)
     {
         obj.swigParentRef = parent;
         return(obj.swigCPtr);
     }
     else
     {
         return(new HandleRef(null, IntPtr.Zero));
     }
 }
示例#7
0
 public static HandleRef getCPtrAndDisown(ColorEntry obj, object parent) {
   if (obj != null)
   {
     obj.swigCMemOwn = false;
     obj.swigParentRef = parent;
     return obj.swigCPtr;
   }
   else
   {
     return new HandleRef(null, IntPtr.Zero);
   }
 }
示例#8
0
 public static HandleRef getCPtrAndDisown(ColorEntry obj, object parent)
 {
     if (obj != null)
     {
         obj.swigCMemOwn   = false;
         obj.swigParentRef = parent;
         return(obj.swigCPtr);
     }
     else
     {
         return(new HandleRef(null, IntPtr.Zero));
     }
 }
示例#9
0
 public static HandleRef getCPtr(ColorEntry obj)
 {
     return((obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr);
 }
示例#10
0
        /// <summary>
        /// This should update the palette cached and in the file.
        /// </summary>
        /// <param name="value"></param>
        public override void SetColorPalette(IEnumerable<Color> value)
        {
            ColorPalette = value;
            _dataset = Gdal.Open(Filename, Access.GA_Update);

            ColorTable ct = new ColorTable(PaletteInterp.GPI_RGB);
            int index = 0;
            foreach (Color c in value)
            {
                ColorEntry ce = new ColorEntry();
                ce.c4 = c.A;
                ce.c3 = c.B;
                ce.c2 = c.G;
                ce.c1 = c.R;
                ct.SetColorEntry(index, ce);
                index++;
            }
            using (Band first = _dataset.GetRasterBand(1))
            {
                first.SetRasterColorTable(ct);
            }
        }
示例#11
0
 public void CreateColorRamp(int nStartIndex, ColorEntry startcolor, int nEndIndex, ColorEntry endcolor) {
   GdalPINVOKE.ColorTable_CreateColorRamp(swigCPtr, nStartIndex, ColorEntry.getCPtr(startcolor), nEndIndex, ColorEntry.getCPtr(endcolor));
   if (GdalPINVOKE.SWIGPendingException.Pending) throw GdalPINVOKE.SWIGPendingException.Retrieve();
 }
示例#12
0
 public void SetColorEntry(int entry, ColorEntry centry) {
   GdalPINVOKE.ColorTable_SetColorEntry(swigCPtr, entry, ColorEntry.getCPtr(centry));
   if (GdalPINVOKE.SWIGPendingException.Pending) throw GdalPINVOKE.SWIGPendingException.Retrieve();
 }
示例#13
0
 public int GetColorEntryAsRGB(int entry, ColorEntry centry) {
   int ret = GdalPINVOKE.ColorTable_GetColorEntryAsRGB(swigCPtr, entry, ColorEntry.getCPtr(centry));
   if (GdalPINVOKE.SWIGPendingException.Pending) throw GdalPINVOKE.SWIGPendingException.Retrieve();
   return ret;
 }
示例#14
0
 public static HandleRef getCPtr(ColorEntry obj) {
   return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
 }
示例#15
0
    public static void Main(string[] args)
    {
        if (args.Length != 2) usage();

        string file = args[0];
        string file_out = args[1];
        try {

            /* -------------------------------------------------------------------- */
            /*      Register driver(s).                                             */
            /* -------------------------------------------------------------------- */
            Gdal.AllRegister();

            Driver dv = null;
            Dataset ds = null, ds_out = null;
            Band ba = null, ba_out = null;
            ColorTable ct = null, ct_out = null;
            byte [] buffer;

            /* -------------------------------------------------------------------- */
            /*      Open dataset.                                                   */
            /* -------------------------------------------------------------------- */
            ds = Gdal.Open(file, Access.GA_ReadOnly);
            ba = ds.GetRasterBand(1);
            ct = ba.GetRasterColorTable();

            if( ct != null )
                Console.WriteLine( "Band has a color table with " + ct.GetCount() + " entries.");
            else
            {
                Console.WriteLine( "Data source has no color table");
                return;
            }

            buffer = new byte [ds.RasterXSize * ds.RasterYSize];
            ba.ReadRaster(0, 0, ds.RasterXSize, ds.RasterYSize, buffer,
                ds.RasterXSize, ds.RasterYSize, 0, 0);

            /* -------------------------------------------------------------------- */
            /*      Get driver                                                      */
            /* -------------------------------------------------------------------- */
            dv = Gdal.GetDriverByName("GTiff");

            ds_out = dv.Create(file_out, ds.RasterXSize, ds.RasterYSize,
                ds.RasterCount, ba.DataType, new string [] {});
            ba_out = ds_out.GetRasterBand(1);
            ct_out = new ColorTable(PaletteInterp.GPI_RGB);

            ba_out.WriteRaster(0, 0, ds.RasterXSize, ds.RasterYSize, buffer,
                ds.RasterXSize, ds.RasterYSize, 0, 0);

            /* -------------------------------------------------------------------- */
            /*      Copying the colortable                                          */
            /* -------------------------------------------------------------------- */
            for (int i = 0; i < ct.GetCount(); i++)
            {
                ColorEntry ce = null, ce_out = null;

                ce = ct.GetColorEntry(i);
                ce_out = new ColorEntry();

                ce_out.c1 = ce.c1;
                ce_out.c2 = ce.c2;
                ce_out.c3 = ce.c3;
                ce_out.c4 = ce.c4;

                ct_out.SetColorEntry(i, ce_out);

                ce.Dispose();
                ce_out.Dispose();
            }

            ba_out.SetRasterColorTable(ct_out);
        }
        catch (Exception e)
        {
            Console.WriteLine("Application error: " + e.Message);
        }
    }