@@ -68,28 +68,38 @@ std::string replaceString(std::string subject, const std::string& search,
68
68
}
69
69
70
70
71
- std::string getScannerType ( std::string filename )
71
+ void getScannerType ( std::string filename, std::string &ScannerType )
72
72
{
73
73
74
+ std::cout << " \t ...Detecting Scanner Type" << std::endl;
75
+
74
76
TIFF* tif = TIFFOpen (filename.c_str (), " r" );
75
77
76
78
if (tif) {
77
79
80
+ std::cout << " \t ...Successfully read TIFF directory" << std::endl;
81
+
78
82
TIFFReadDirectory (tif);
79
83
80
- char * model_name = NULL ;
84
+ char * model_name = " " ;
81
85
82
86
TIFFGetField (tif, TIFFTAG_MODEL, &model_name);
83
87
88
+ std::cout << " \t ...Successfully extracted TIF Field" << std::endl;
89
+
84
90
std::string output ( model_name );
85
91
92
+ std::cout << " \t ...Successfully converted to string" << std::endl;
93
+
94
+ ScannerType = output;
95
+
86
96
TIFFClose (tif);
87
97
88
- return output ;
98
+ std::cout << " \t ...Successfully closed TIF " << std::endl ;
89
99
90
100
}
91
101
92
- return " Error" ;
102
+ std::cerr << " Error" << std::endl ;
93
103
94
104
}
95
105
@@ -98,7 +108,8 @@ Magick::Image getThumbLayer(std::string filename) {
98
108
// APERIO NEEDS TESTING
99
109
Magick::Image image;
100
110
101
- std::string ScannerType = getScannerType (filename);
111
+ std::string ScannerType;
112
+ getScannerType (filename, ScannerType);
102
113
103
114
if (ScannerType == " iScan HT" ) {image.read ( filename.append (" [0]" ) );}
104
115
if (ScannerType == " iScan" ) {image.read ( filename.append (" [0]" ) );}
@@ -136,15 +147,16 @@ Magick::Image getThumbLayer(std::string filename) {
136
147
137
148
}
138
149
139
- Magick::Image getMacroLayer (std::string filename, std::string layer = " -1 " ) {
150
+ Magick::Image getMacroLayer (std::string filename, int layer = - 1 ) {
140
151
141
152
Magick::Image image;
142
153
143
- if (layer == " -1 " ) {
154
+ if (layer == - 1 ) {
144
155
145
156
int LAYER = -1 ;
146
157
147
- std::string ScannerType = getScannerType (filename);
158
+ std::string ScannerType;
159
+ getScannerType (filename, ScannerType);
148
160
149
161
if (ScannerType == " iScan HT" ) {LAYER = 8 ;}
150
162
if (ScannerType == " iScan" ) {LAYER = 7 ;}
@@ -161,6 +173,12 @@ Magick::Image getMacroLayer(std::string filename, std::string layer = "-1") {
161
173
162
174
LAYER = n_layers - 3 ;
163
175
}
176
+ else {
177
+ std::cerr << " Unimplemented Scanner Type '" << ScannerType << " '" << std::endl;
178
+ exit (-1 );
179
+ }
180
+
181
+ std::cout << " Detected Scanner Type '" << ScannerType << " '" << std::endl;
164
182
165
183
image.read ( filename.append (" [" + std::to_string (LAYER) + " ]" ) );
166
184
@@ -171,7 +189,7 @@ Magick::Image getMacroLayer(std::string filename, std::string layer = "-1") {
171
189
172
190
std::cout << " \t ...Reading image in layer '" << layer << " ' of TIF file." << std::endl;
173
191
174
- image.read ( filename.append (" [" + layer + " ]" ) );
192
+ image.read ( filename.append (" [" + std::to_string ( layer) + " ]" ) );
175
193
176
194
return image;
177
195
0 commit comments