parent
ea515f4c98
commit
4f6273a2bd
@ -6109,7 +6109,8 @@ get2_256:
|
|||||||
{
|
{
|
||||||
fseek(ifp, offsetChannelBlackLevel, SEEK_SET);
|
fseek(ifp, offsetChannelBlackLevel, SEEK_SET);
|
||||||
FORC4
|
FORC4
|
||||||
bls += (cblack/*imCanon.ChannelBlackLevel*/[c ^ (c >> 1)] = get2());
|
bls += (RT_canon_levels_data.cblack/*imCanon.ChannelBlackLevel*/[c ^ (c >> 1)] = get2());
|
||||||
|
RT_canon_levels_data.black_ok = true;
|
||||||
imCanon.AverageBlackLevel = bls / 4;
|
imCanon.AverageBlackLevel = bls / 4;
|
||||||
// RT_blacklevel_from_constant = ThreeValBool::F;
|
// RT_blacklevel_from_constant = ThreeValBool::F;
|
||||||
}
|
}
|
||||||
@ -6121,7 +6122,8 @@ get2_256:
|
|||||||
imCanon.SpecularWhiteLevel = get2();
|
imCanon.SpecularWhiteLevel = get2();
|
||||||
// FORC4
|
// FORC4
|
||||||
// imgdata.color.linear_max[c] = imCanon.SpecularWhiteLevel;
|
// imgdata.color.linear_max[c] = imCanon.SpecularWhiteLevel;
|
||||||
maximum = imCanon.SpecularWhiteLevel;
|
RT_canon_levels_data.white = imCanon.SpecularWhiteLevel;
|
||||||
|
RT_canon_levels_data.white_ok = true;
|
||||||
// RT_whitelevel_from_constant = ThreeValBool::F;
|
// RT_whitelevel_from_constant = ThreeValBool::F;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6129,7 +6131,8 @@ get2_256:
|
|||||||
{
|
{
|
||||||
fseek(ifp, offsetChannelBlackLevel2, SEEK_SET);
|
fseek(ifp, offsetChannelBlackLevel2, SEEK_SET);
|
||||||
FORC4
|
FORC4
|
||||||
bls += (cblack/*imCanon.ChannelBlackLevel*/[c ^ (c >> 1)] = get2());
|
bls += (RT_canon_levels_data.cblack/*imCanon.ChannelBlackLevel*/[c ^ (c >> 1)] = get2());
|
||||||
|
RT_canon_levels_data.black_ok = true;
|
||||||
imCanon.AverageBlackLevel = bls / 4;
|
imCanon.AverageBlackLevel = bls / 4;
|
||||||
// RT_blacklevel_from_constant = ThreeValBool::F;
|
// RT_blacklevel_from_constant = ThreeValBool::F;
|
||||||
}
|
}
|
||||||
@ -9864,7 +9867,8 @@ void CLASS identify()
|
|||||||
filters = 0;
|
filters = 0;
|
||||||
tiff_samples = colors = 3;
|
tiff_samples = colors = 3;
|
||||||
load_raw = &CLASS canon_sraw_load_raw;
|
load_raw = &CLASS canon_sraw_load_raw;
|
||||||
FORC4 cblack[c] = 0; // ALB
|
//FORC4 cblack[c] = 0; // ALB
|
||||||
|
RT_canon_levels_data.black_ok = RT_canon_levels_data.white_ok = false;
|
||||||
} else if (!strcmp(model,"PowerShot 600")) {
|
} else if (!strcmp(model,"PowerShot 600")) {
|
||||||
height = 613;
|
height = 613;
|
||||||
width = 854;
|
width = 854;
|
||||||
@ -10530,6 +10534,14 @@ bw: colors = 1;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
dng_skip:
|
dng_skip:
|
||||||
|
if (!dng_version && is_raw) {
|
||||||
|
if (RT_canon_levels_data.black_ok) {
|
||||||
|
FORC4 cblack[c] = RT_canon_levels_data.cblack[c];
|
||||||
|
}
|
||||||
|
if (RT_canon_levels_data.white_ok) {
|
||||||
|
maximum = RT_canon_levels_data.white;
|
||||||
|
}
|
||||||
|
}
|
||||||
if ((use_camera_matrix & (use_camera_wb || dng_version))
|
if ((use_camera_matrix & (use_camera_wb || dng_version))
|
||||||
&& cmatrix[0][0] > 0.125
|
&& cmatrix[0][0] > 0.125
|
||||||
&& strncmp(RT_software.c_str(), "Adobe DNG Converter", 19) != 0
|
&& strncmp(RT_software.c_str(), "Adobe DNG Converter", 19) != 0
|
||||||
|
@ -193,9 +193,18 @@ public:
|
|||||||
int crx_track_selected;
|
int crx_track_selected;
|
||||||
short CR3_CTMDtag;
|
short CR3_CTMDtag;
|
||||||
};
|
};
|
||||||
|
struct CanonLevelsData {
|
||||||
|
unsigned cblack[4];
|
||||||
|
unsigned white;
|
||||||
|
bool black_ok;
|
||||||
|
bool white_ok;
|
||||||
|
CanonLevelsData(): cblack{0}, white{0}, black_ok(false), white_ok(false) {}
|
||||||
|
};
|
||||||
protected:
|
protected:
|
||||||
CanonCR3Data RT_canon_CR3_data;
|
CanonCR3Data RT_canon_CR3_data;
|
||||||
|
|
||||||
|
CanonLevelsData RT_canon_levels_data;
|
||||||
|
|
||||||
float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
|
float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
|
||||||
|
|
||||||
void (DCraw::*write_thumb)();
|
void (DCraw::*write_thumb)();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user