Prepare rtengine to allow extraction of individual frames from multi frame raw files (i.e. Pentax pixel shift)
This commit is contained in:
parent
b961e31401
commit
3f13a98135
@ -398,7 +398,7 @@ skip_block:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int RawImage::loadRaw (bool loadData, bool closeFile, ProgressListener *plistener, double progressRange)
|
int RawImage::loadRaw (bool loadData, bool closeFile, ProgressListener *plistener, double progressRange, unsigned int frameNum)
|
||||||
{
|
{
|
||||||
ifname = filename.c_str();
|
ifname = filename.c_str();
|
||||||
image = nullptr;
|
image = nullptr;
|
||||||
@ -435,6 +435,8 @@ int RawImage::loadRaw (bool loadData, bool closeFile, ProgressListener *plistene
|
|||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setFrameNumber(frameNum);
|
||||||
|
|
||||||
if (flip == 5) {
|
if (flip == 5) {
|
||||||
this->rotate_deg = 270;
|
this->rotate_deg = 270;
|
||||||
} else if (flip == 3) {
|
} else if (flip == 3) {
|
||||||
|
@ -106,7 +106,7 @@ public:
|
|||||||
explicit RawImage( const Glib::ustring &name );
|
explicit RawImage( const Glib::ustring &name );
|
||||||
~RawImage();
|
~RawImage();
|
||||||
|
|
||||||
int loadRaw (bool loadData = true, bool closeFile = true, ProgressListener *plistener = nullptr, double progressRange = 1.0);
|
int loadRaw (bool loadData = true, bool closeFile = true, ProgressListener *plistener = nullptr, double progressRange = 1.0, unsigned int frameNum = 0);
|
||||||
void get_colorsCoeff( float* pre_mul_, float* scale_mul_, float* cblack_, bool forceAutoWB );
|
void get_colorsCoeff( float* pre_mul_, float* scale_mul_, float* cblack_, bool forceAutoWB );
|
||||||
void set_prefilters()
|
void set_prefilters()
|
||||||
{
|
{
|
||||||
@ -307,6 +307,13 @@ public:
|
|||||||
return zero_is_bad == 1 ? true : false;
|
return zero_is_bad == 1 ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setFrameNumber(unsigned int frameNum) {
|
||||||
|
// a single raw file can contain more than one frame.
|
||||||
|
// Variable is_raw holds the number of frames in the raw file
|
||||||
|
// use setFrameNumber() to set the number of the frame [0; is_raw - 1] to be processed
|
||||||
|
shot_select = std::min(std::max(is_raw, 1) - 1, frameNum);
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// dcraw functions
|
// dcraw functions
|
||||||
void scale_colors()
|
void scale_colors()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user