1 /**********************************************************************************************
2     Copyright (C) 2018 Oliver Eichler <oliver.eichler@gmx.de>
3 
4     This program is free software: you can redistribute it and/or modify
5     it under the terms of the GNU General Public License as published by
6     the Free Software Foundation, either version 3 of the License, or
7     (at your option) any later version.
8 
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12     GNU General Public License for more details.
13 
14     You should have received a copy of the GNU General Public License
15     along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 
17 **********************************************************************************************/
18 
19 #ifndef CAPP_H
20 #define CAPP_H
21 
22 #include <gdal.h>
23 #include <QtCore>
24 
25 class GDALColorTable;
26 class GDALDataset;
27 
28 class CApp
29 {
30     Q_DECLARE_TR_FUNCTIONS(CApp)
31 public:
32     CApp(qint32 ncolors, const QString& pctFilename, const QString& sctFilename, const QString& srcFilename, const QString& tarFilename);
33     virtual ~CApp() = default;
34 
35     qint32 exec();
36 
37 private:
38     static GDALColorTable* createColorTable(qint32 ncolors, const QString& pctFilename, GDALDataset* dataset);
39     static void saveColorTable(GDALColorTable* ct, QString& sctFilename);
40     static void ditherMap(GDALDataset* dsSrc, const QString& tarFilename, GDALColorTable* ct);
41 
42     qint32 ncolors = 0;
43     QString pctFilename;
44     QString sctFilename;
45     QString srcFilename;
46     QString tarFilename;
47 
48     static const GDALColorEntry noColor;
49 };
50 
51 void printStdoutQString(const QString& str);
52 void printStderrQString(const QString& str);
53 
54 #endif //CAPP_H
55 
56