Skip to content

Commit 2bc6bd3

Browse files
Egor VakhromtsevEgor Vakhromtsev
Egor Vakhromtsev
authored and
Egor Vakhromtsev
committed
Some fixes
1 parent daa5d9a commit 2bc6bd3

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
lines changed

src/image.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Image::Image(const Image &from_image)
2323
{
2424
image=new Magick::Image(*from_image.get_magick_image());
2525
raw_processor = new LibRaw();
26+
empty = false;
2627
}
2728

2829
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
3435
Image::Image(const Magick::Image &from_image)
3536
{
3637
raw_processor = new LibRaw();
37-
image = new Magick::Image(from_image);
38+
image = new Magick::Image(from_image);
39+
empty = false;
3840
}
3941

4042
Image::~Image()
@@ -134,6 +136,7 @@ void Image::init()
134136

135137
image=new Magick::Image();
136138
image->quiet( false );
139+
empty = true;
137140
raw_processor = new LibRaw();
138141
}
139142

@@ -143,6 +146,7 @@ void Image::read_with_image_magick(const std::string &file)
143146
try
144147
{
145148
image->read(file);
149+
empty = false;
146150
}
147151
catch(Magick::Error &error)
148152
{
@@ -177,12 +181,14 @@ void Image::read_preview_with_libraw(const std::string &file)
177181
// blob.updateNoCopy(raw_processor->imgdata.thumbnail.thumb, raw_processor->imgdata.thumbnail.tlength, Magick::Blob::MallocAllocator);
178182

179183
image->read(blob);
184+
empty = false;
180185
}
181186
break;
182187

183188
case LIBRAW_THUMBNAIL_BITMAP:
184189
{
185190
image->read( raw_processor->imgdata.thumbnail.twidth, raw_processor->imgdata.thumbnail.theight, "RGB", Magick::CharPixel, raw_processor->imgdata.thumbnail.thumb);
191+
empty = false;
186192
}
187193
break;
188194

@@ -263,6 +269,7 @@ void Image::read_preview_from_jpeg(const std::string &file)
263269
Magick::Blob blob;//(buf, preview_length);
264270
blob.updateNoCopy(buf, preview_length, Magick::Blob::MallocAllocator);
265271
image->read(blob);
272+
empty = false;
266273

267274
//free(buf); // should no free when updateNoCopy() from Magick::Blob used
268275
}
@@ -311,6 +318,7 @@ void Image::read_raw_with_libraw(const std::string &file, const bool half_size)
311318
throw std::runtime_error(std::string("Unsupported bits per fixel for ") + file);
312319

313320
image->read( processed_image->width, processed_image->height, "RGB", bpp, processed_image->data);
321+
empty = false;
314322

315323
raw_processor->dcraw_clear_mem(processed_image);
316324
raw_processor->recycle();

src/image.h

+3
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,14 @@ class Image
8989

9090

9191
size_t width() const {
92+
if (empty) { return 0; }
9293
assert(image != 0);
9394

9495
return image->columns();
9596
}
9697

9798
size_t height() const {
99+
if (empty) { return 0; }
98100
assert(image != 0);
99101

100102
return image->rows();
@@ -165,6 +167,7 @@ class Image
165167
LibRaw *raw_processor;
166168
std::mutex image_mutex;
167169
std::mutex reset_mutex;
170+
bool empty = true;
168171
};
169172

170173
}

src/mainwindow.cpp

+12-2
Original file line numberDiff line numberDiff line change
@@ -843,12 +843,22 @@ void MainWindow::on_actionEach_N_triggered()
843843

844844
void MainWindow::on_actionFull_size_JPEG_triggered()
845845
{
846-
jpeg_processing_mode = StarTrailer::Image::FullJpeg;
846+
// jpeg_processing_mode = StarTrailer::Image::FullJpeg;
847847
}
848848

849849

850850
void MainWindow::on_actionEmbedded_preview_triggered()
851851
{
852-
jpeg_processing_mode = StarTrailer::Image::PreviewJPEG;
852+
// jpeg_processing_mode = StarTrailer::Image::PreviewJPEG;
853+
}
854+
855+
856+
void MainWindow::on_actionFull_size_JPEG_triggered(bool checked)
857+
{
858+
if (checked) {
859+
jpeg_processing_mode = StarTrailer::Image::FullJpeg;
860+
} else {
861+
jpeg_processing_mode = StarTrailer::Image::PreviewJPEG;
862+
}
853863
}
854864

src/mainwindow.h

+2
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ private slots:
136136

137137
void on_actionEmbedded_preview_triggered();
138138

139+
void on_actionFull_size_JPEG_triggered(bool checked);
140+
139141
protected:
140142
void closeEvent(QCloseEvent *event);
141143

0 commit comments

Comments
 (0)