LCOV - code coverage report
Current view: top level - frmts/gtiff - gtiffbitmapband.cpp (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 22 25 88.0 %
Date: 2024-11-21 22:18:42 Functions: 5 5 100.0 %

          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             : }

Generated by: LCOV version 1.14