@@ -23,6 +23,7 @@ Image::Image(const Image &from_image)
23
23
{
24
24
image=new Magick::Image (*from_image.get_magick_image ());
25
25
raw_processor = new LibRaw ();
26
+ empty = false ;
26
27
}
27
28
28
29
Image::Image (const std::string &file, Image::RawProcessingMode raw_processing_mode, Image::JPEGProcessingMode jpeg_processing_mode)
@@ -34,7 +35,8 @@ Image::Image(const std::string &file, Image::RawProcessingMode raw_processing_mo
34
35
Image::Image (const Magick::Image &from_image)
35
36
{
36
37
raw_processor = new LibRaw ();
37
- image = new Magick::Image (from_image);
38
+ image = new Magick::Image (from_image);
39
+ empty = false ;
38
40
}
39
41
40
42
Image::~Image ()
@@ -134,6 +136,7 @@ void Image::init()
134
136
135
137
image=new Magick::Image ();
136
138
image->quiet ( false );
139
+ empty = true ;
137
140
raw_processor = new LibRaw ();
138
141
}
139
142
@@ -143,6 +146,7 @@ void Image::read_with_image_magick(const std::string &file)
143
146
try
144
147
{
145
148
image->read (file);
149
+ empty = false ;
146
150
}
147
151
catch (Magick::Error &error)
148
152
{
@@ -177,12 +181,14 @@ void Image::read_preview_with_libraw(const std::string &file)
177
181
// blob.updateNoCopy(raw_processor->imgdata.thumbnail.thumb, raw_processor->imgdata.thumbnail.tlength, Magick::Blob::MallocAllocator);
178
182
179
183
image->read (blob);
184
+ empty = false ;
180
185
}
181
186
break ;
182
187
183
188
case LIBRAW_THUMBNAIL_BITMAP:
184
189
{
185
190
image->read ( raw_processor->imgdata .thumbnail .twidth , raw_processor->imgdata .thumbnail .theight , " RGB" , Magick::CharPixel, raw_processor->imgdata .thumbnail .thumb );
191
+ empty = false ;
186
192
}
187
193
break ;
188
194
@@ -263,6 +269,7 @@ void Image::read_preview_from_jpeg(const std::string &file)
263
269
Magick::Blob blob;// (buf, preview_length);
264
270
blob.updateNoCopy (buf, preview_length, Magick::Blob::MallocAllocator);
265
271
image->read (blob);
272
+ empty = false ;
266
273
267
274
// free(buf); // should no free when updateNoCopy() from Magick::Blob used
268
275
}
@@ -311,6 +318,7 @@ void Image::read_raw_with_libraw(const std::string &file, const bool half_size)
311
318
throw std::runtime_error (std::string (" Unsupported bits per fixel for " ) + file);
312
319
313
320
image->read ( processed_image->width , processed_image->height , " RGB" , bpp, processed_image->data );
321
+ empty = false ;
314
322
315
323
raw_processor->dcraw_clear_mem (processed_image);
316
324
raw_processor->recycle ();
0 commit comments