parent
ea515f4c98
commit
4f6273a2bd
@ -6109,7 +6109,8 @@ get2_256:
|
||||
{
|
||||
fseek(ifp, offsetChannelBlackLevel, SEEK_SET);
|
||||
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;
|
||||
// RT_blacklevel_from_constant = ThreeValBool::F;
|
||||
}
|
||||
@ -6121,7 +6122,8 @@ get2_256:
|
||||
imCanon.SpecularWhiteLevel = get2();
|
||||
// FORC4
|
||||
// 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;
|
||||
}
|
||||
|
||||
@ -6129,7 +6131,8 @@ get2_256:
|
||||
{
|
||||
fseek(ifp, offsetChannelBlackLevel2, SEEK_SET);
|
||||
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;
|
||||
// RT_blacklevel_from_constant = ThreeValBool::F;
|
||||
}
|
||||
@ -9864,7 +9867,8 @@ void CLASS identify()
|
||||
filters = 0;
|
||||
tiff_samples = colors = 3;
|
||||
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")) {
|
||||
height = 613;
|
||||
width = 854;
|
||||
@ -10530,6 +10534,14 @@ bw: colors = 1;
|
||||
}
|
||||
}
|
||||
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))
|
||||
&& cmatrix[0][0] > 0.125
|
||||
&& strncmp(RT_software.c_str(), "Adobe DNG Converter", 19) != 0
|
||||
|
@ -193,9 +193,18 @@ public:
|
||||
int crx_track_selected;
|
||||
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:
|
||||
CanonCR3Data RT_canon_CR3_data;
|
||||
|
||||
CanonLevelsData RT_canon_levels_data;
|
||||
|
||||
float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
|
||||
|
||||
void (DCraw::*write_thumb)();
|
||||
|
Loading…
x
Reference in New Issue
Block a user