[gdal-dev] Adding an alpha channel to a Virtual Dataset then Writing it out to a TIFF in C#

avtoader avtoader at gmail.com
Tue May 29 19:04:06 PDT 2012


Hello!
I've been trying to figure this out for a while and this would be my first
time asking a question here.

How do I load a 3-band tiff into a virtual dataset, add a band (alpha
layer), warp the virtual dataset, then write it out to a TIFF again
(different, path, different name)?

I'm loading a 3-band tiff into a virtual dataset using C# and then
attempting to add an alpha layer using this code:

//  Load image dataset
using (OSGeo.GDAL.Dataset imageDs = OSGeo.GDAL.Gdal.Open(devPath,
OSGeo.GDAL.Access.GA_ReadOnly))
{
     //  Copy dataset data into a virtual dataset
     virtDs = OSGeo.GDAL.Gdal.GetDriverByName("VRT").CreateCopy("", imageDs,
0, null, null, null);
     //  If addAlpha true, add an alpha layer band
     if (addAlpha)
     {
          virtDs.AddBand(OSGeo.GDAL.DataType.GDT_Byte, null);
         
virtDs.GetRasterBand(4).SetColorInterpretation(OSGeo.GDAL.ColorInterp.GCI_AlphaBand);
     }

     imageDs.Dispose();
     GC.Collect();
}

I then attempt to warp the virtual dataset and write it back out to a TIFF
again (with the option "ALPHA=YES").  I feel like I'm missing something and
I'm not sure what.  Every time I attempt to view the new TIFF, it ends up
transparent.

The only way I seem to get it to work in a viewable manner is to manually
copy each raster band to a new dataset and filling in the alpha band (band
4) with 255.

Any help is appreciated, thanks in advance!
-Alex

--
View this message in context: http://osgeo-org.1560.n6.nabble.com/Adding-an-alpha-channel-to-a-Virtual-Dataset-then-Writing-it-out-to-a-TIFF-in-C-tp4977894.html
Sent from the GDAL - Dev mailing list archive at Nabble.com.


More information about the gdal-dev mailing list