Fix thumbnail spot removal with dehaze & film neg.
This commit is contained in:
@@ -750,7 +750,7 @@ void Crop::update(int todo)
|
|||||||
parent->imgsrc->getImage(parent->currWB, tr, f, pp, params.toneCurve, params.raw);
|
parent->imgsrc->getImage(parent->currWB, tr, f, pp, params.toneCurve, params.raw);
|
||||||
parent->imgsrc->convertColorSpace(f, params.icm, parent->currWB);
|
parent->imgsrc->convertColorSpace(f, params.icm, parent->currWB);
|
||||||
|
|
||||||
if (params.dirpyrDenoise.enabled || params.filmNegative.enabled) {
|
if (params.dirpyrDenoise.enabled || params.filmNegative.enabled || params.spot.enabled) {
|
||||||
// copy the denoised crop
|
// copy the denoised crop
|
||||||
int oy = trafy / skip;
|
int oy = trafy / skip;
|
||||||
int ox = trafx / skip;
|
int ox = trafx / skip;
|
||||||
|
@@ -346,6 +346,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
RAWParams rp = params->raw;
|
RAWParams rp = params->raw;
|
||||||
ColorManagementParams cmp = params->icm;
|
ColorManagementParams cmp = params->icm;
|
||||||
LCurveParams lcur = params->labCurve;
|
LCurveParams lcur = params->labCurve;
|
||||||
|
bool spotsDone = false;
|
||||||
|
|
||||||
if (!highDetailNeeded) {
|
if (!highDetailNeeded) {
|
||||||
// if below 100% magnification, take a fast path
|
// if below 100% magnification, take a fast path
|
||||||
@@ -609,6 +610,13 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
ipf.setScale(scale);
|
ipf.setScale(scale);
|
||||||
|
|
||||||
imgsrc->getImage(currWB, tr, orig_prev, pp, params->toneCurve, params->raw);
|
imgsrc->getImage(currWB, tr, orig_prev, pp, params->toneCurve, params->raw);
|
||||||
|
|
||||||
|
if ((todo & M_SPOT) && params->spot.enabled && !params->spot.entries.empty()) {
|
||||||
|
spotsDone = true;
|
||||||
|
PreviewProps pp(0, 0, fw, fh, scale);
|
||||||
|
ipf.removeSpots(orig_prev, imgsrc, params->spot.entries, pp, currWB, nullptr, tr);
|
||||||
|
}
|
||||||
|
|
||||||
denoiseInfoStore.valid = false;
|
denoiseInfoStore.valid = false;
|
||||||
//ColorTemp::CAT02 (orig_prev, ¶ms) ;
|
//ColorTemp::CAT02 (orig_prev, ¶ms) ;
|
||||||
// printf("orig_prevW=%d\n scale=%d",orig_prev->width, scale);
|
// printf("orig_prevW=%d\n scale=%d",orig_prev->width, scale);
|
||||||
@@ -680,7 +688,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
|
|
||||||
oprevi = orig_prev;
|
oprevi = orig_prev;
|
||||||
|
|
||||||
if (todo & M_SPOT) {
|
if ((todo & M_SPOT) && !spotsDone) {
|
||||||
if (params->spot.enabled && !params->spot.entries.empty()) {
|
if (params->spot.enabled && !params->spot.entries.empty()) {
|
||||||
allocCache(spotprev);
|
allocCache(spotprev);
|
||||||
orig_prev->copyData(spotprev);
|
orig_prev->copyData(spotprev);
|
||||||
@@ -694,10 +702,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (spotprev) {
|
if (spotprev) {
|
||||||
if (oprevi == orig_prev) {
|
spotprev->copyData(orig_prev);
|
||||||
oprevi = new Imagefloat(pW, pH);
|
|
||||||
}
|
|
||||||
spotprev->copyData(oprevi);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((todo & M_HDR) && (params->fattal.enabled || params->dehaze.enabled)) {
|
if ((todo & M_HDR) && (params->fattal.enabled || params->dehaze.enabled)) {
|
||||||
|
Reference in New Issue
Block a user