Line data Source code
1 : /****************************************************************************** 2 : * 3 : * Project: GeoTIFF Driver 4 : * Purpose: GDAL GeoTIFF support. 5 : * Author: Frank Warmerdam, warmerdam@pobox.com 6 : * 7 : ****************************************************************************** 8 : * Copyright (c) 1998, 2002, Frank Warmerdam <warmerdam@pobox.com> 9 : * Copyright (c) 2007-2015, Even Rouault <even dot rouault at spatialys dot com> 10 : * 11 : * SPDX-License-Identifier: MIT 12 : ****************************************************************************/ 13 : 14 : #include "gtiffbitmapband.h" 15 : #include "gtiffdataset.h" 16 : 17 : /************************************************************************/ 18 : /* GTiffBitmapBand() */ 19 : /************************************************************************/ 20 : 21 340 : GTiffBitmapBand::GTiffBitmapBand(GTiffDataset *poDSIn, int nBandIn) 22 340 : : GTiffOddBitsBand(poDSIn, nBandIn) 23 : 24 : { 25 340 : eDataType = GDT_Byte; 26 : 27 340 : if (poDSIn->m_poColorTable != nullptr) 28 : { 29 29 : m_poColorTable = poDSIn->m_poColorTable->Clone(); 30 : } 31 : else 32 : { 33 : #ifdef ESRI_BUILD 34 : m_poColorTable = nullptr; 35 : #else 36 311 : const GDALColorEntry oWhite = {255, 255, 255, 255}; 37 311 : const GDALColorEntry oBlack = {0, 0, 0, 255}; 38 : 39 311 : m_poColorTable = new GDALColorTable(); 40 : 41 311 : if (poDSIn->m_nPhotometric == PHOTOMETRIC_MINISWHITE) 42 : { 43 0 : m_poColorTable->SetColorEntry(0, &oWhite); 44 0 : m_poColorTable->SetColorEntry(1, &oBlack); 45 : } 46 : else 47 : { 48 311 : m_poColorTable->SetColorEntry(0, &oBlack); 49 311 : m_poColorTable->SetColorEntry(1, &oWhite); 50 : } 51 : #endif // not defined ESRI_BUILD. 52 : } 53 340 : } 54 : 55 : /************************************************************************/ 56 : /* ~GTiffBitmapBand() */ 57 : /************************************************************************/ 58 : 59 670 : GTiffBitmapBand::~GTiffBitmapBand() 60 : 61 : { 62 340 : delete m_poColorTable; 63 670 : } 64 : 65 : /************************************************************************/ 66 : /* GetColorInterpretation() */ 67 : /************************************************************************/ 68 : 69 83 : GDALColorInterp GTiffBitmapBand::GetColorInterpretation() 70 : 71 : { 72 83 : if (m_poGDS->m_bPromoteTo8Bits) 73 48 : return GCI_Undefined; 74 : 75 35 : return GCI_PaletteIndex; 76 : } 77 : 78 : /************************************************************************/ 79 : /* GetColorTable() */ 80 : /************************************************************************/ 81 : 82 34 : GDALColorTable *GTiffBitmapBand::GetColorTable() 83 : 84 : { 85 34 : if (m_poGDS->m_bPromoteTo8Bits) 86 0 : return nullptr; 87 : 88 34 : return m_poColorTable; 89 : }