public static HandleRef getCPtrAndSetReference(ColorTable obj, object parent) { if (obj != null) { obj.swigParentRef = parent; return obj.swigCPtr; } else { return new HandleRef(null, IntPtr.Zero); } }
public static HandleRef getCPtrAndDisown(ColorTable obj, object parent) { if (obj != null) { obj.swigCMemOwn = false; obj.swigParentRef = parent; return obj.swigCPtr; } else { return new HandleRef(null, IntPtr.Zero); } }
public static HandleRef getCPtr(ColorTable obj) { return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; }
public int SetRasterColorTable(ColorTable arg) { int ret = GdalPINVOKE.Band_SetRasterColorTable(swigCPtr, ColorTable.getCPtr(arg)); if (GdalPINVOKE.SWIGPendingException.Pending) throw GdalPINVOKE.SWIGPendingException.Retrieve(); return ret; }
public static int ComputeMedianCutPCT(Band red, Band green, Band blue, int num_colors, ColorTable colors, Gdal.GDALProgressFuncDelegate callback, string callback_data) { int ret = GdalPINVOKE.ComputeMedianCutPCT(Band.getCPtr(red), Band.getCPtr(green), Band.getCPtr(blue), num_colors, ColorTable.getCPtr(colors), callback, callback_data); if (GdalPINVOKE.SWIGPendingException.Pending) throw GdalPINVOKE.SWIGPendingException.Retrieve(); return ret; }
public static int DitherRGB2PCT(Band red, Band green, Band blue, Band target, ColorTable colors, Gdal.GDALProgressFuncDelegate callback, string callback_data) { int ret = GdalPINVOKE.DitherRGB2PCT(Band.getCPtr(red), Band.getCPtr(green), Band.getCPtr(blue), Band.getCPtr(target), ColorTable.getCPtr(colors), callback, callback_data); if (GdalPINVOKE.SWIGPendingException.Pending) throw GdalPINVOKE.SWIGPendingException.Retrieve(); return ret; }
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); } }