Quantcast
Channel: Question and Answer » gdal
Viewing all articles
Browse latest Browse all 397

Writing 3 channels to 8-bit TIF in Python using gdal

$
0
0

I have some Python code to write 3 channels to file. Here, channels is an array of 3 numpy 2D-arrays (RGB), outfile is the filename, and rows and cols are the image dimensions.

def save_tiff(channels, outfile, rows, cols):
    outdriver = gdal.GetDriverByName("GTiff")
    outdata = outdriver.Create(str(outfile)+".tif", rows, cols, len(channels), gdal.GDT_Byte)

    # write the arrays to the file
    i = 1
    for c in channels:
        outdata.GetRasterBand(i).WriteArray(c)
        outdata.GetRasterBand(i).FlushCache() 
        i += 1

However, this results in 24-bit output images (probably because of 3xGDT_Byte channel). How do I get a single 8-bit image from 3 channels (R,G,B) in Python using gdal?


Viewing all articles
Browse latest Browse all 397

Trending Articles