Show raw values in navigator when demosaic 'none' is used
This commit is contained in:
@@ -160,6 +160,7 @@ public:
|
|||||||
{
|
{
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
virtual void getRawValues(int x, int y, int &R, int &G, int &B) = 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -5460,6 +5460,21 @@ void RawImageSource::init ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RawImageSource::getRawValues(int x, int y, int &R, int &G, int &B)
|
||||||
|
{
|
||||||
|
int xnew = x + border;
|
||||||
|
int ynew = y + border;
|
||||||
|
int c = FC(ynew,xnew);
|
||||||
|
int val = rawData[ynew][xnew] / scale_mul[c];
|
||||||
|
if(c == 0) {
|
||||||
|
R = val; G = 0; B = 0;
|
||||||
|
} else if(c == 2) {
|
||||||
|
R = 0; G = 0; B = val;
|
||||||
|
} else {
|
||||||
|
R = 0; G = val; B = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void RawImageSource::cleanup ()
|
void RawImageSource::cleanup ()
|
||||||
{
|
{
|
||||||
delete phaseOneIccCurve;
|
delete phaseOneIccCurve;
|
||||||
|
|||||||
@@ -264,6 +264,7 @@ protected:
|
|||||||
void pixelshift(int winx, int winy, int winw, int winh, const RAWParams::BayerSensor &bayerParams, unsigned int frame, const std::string &model, float rawWpCorrection);
|
void pixelshift(int winx, int winy, int winw, int winh, const RAWParams::BayerSensor &bayerParams, unsigned int frame, const std::string &model, float rawWpCorrection);
|
||||||
void hflip (Imagefloat* im);
|
void hflip (Imagefloat* im);
|
||||||
void vflip (Imagefloat* im);
|
void vflip (Imagefloat* im);
|
||||||
|
void getRawValues(int x, int y, int &R, int &G, int &B);
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -97,6 +97,9 @@ public:
|
|||||||
}
|
}
|
||||||
void setCurrentFrame(unsigned int frameNum) {}
|
void setCurrentFrame(unsigned int frameNum) {}
|
||||||
|
|
||||||
|
void getRawValues(int x, int y, int &R, int &G, int &B) { R = G = B = 0;}
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1035,9 +1035,21 @@ void CropWindow::pointerMoved (int bstate, int x, int y)
|
|||||||
int imheight = cropHandler.cropPixbuf->get_height();
|
int imheight = cropHandler.cropPixbuf->get_height();
|
||||||
guint8* pix = cropHandler.cropPixbuftrue->get_pixels() + vy * cropHandler.cropPixbuf->get_rowstride() + vx * 3;
|
guint8* pix = cropHandler.cropPixbuftrue->get_pixels() + vy * cropHandler.cropPixbuf->get_rowstride() + vx * 3;
|
||||||
|
|
||||||
|
int rval = pix[0];
|
||||||
|
int gval = pix[1];
|
||||||
|
int bval = pix[2];
|
||||||
if (vx < imwidth && vy < imheight) {
|
if (vx < imwidth && vy < imheight) {
|
||||||
|
rtengine::StagedImageProcessor* ipc = iarea->getImProcCoordinator();
|
||||||
|
if(ipc) {
|
||||||
|
procparams::ProcParams params;
|
||||||
|
ipc->getParams(¶ms);
|
||||||
|
if(params.raw.bayersensor.method == RAWParams::BayerSensor::methodstring[RAWParams::BayerSensor::none]) {
|
||||||
|
ImageSource *isrc = static_cast<ImageSource*>(ipc->getInitialImage());
|
||||||
|
isrc->getRawValues(mx, my, rval, gval, bval);
|
||||||
|
}
|
||||||
|
}
|
||||||
// pmlistener->pointerMoved (true, cropHandler.colorParams.working, mx, my, pix[0], pix[1], pix[2]);
|
// pmlistener->pointerMoved (true, cropHandler.colorParams.working, mx, my, pix[0], pix[1], pix[2]);
|
||||||
pmlistener->pointerMoved (true, cropHandler.colorParams.output, cropHandler.colorParams.working, mx, my, pix[0], pix[1], pix[2]);
|
pmlistener->pointerMoved (true, cropHandler.colorParams.output, cropHandler.colorParams.working, mx, my, rval, gval, bval);
|
||||||
|
|
||||||
if (pmhlistener)
|
if (pmhlistener)
|
||||||
// pmhlistener->pointerMoved (true, cropHandler.colorParams.working, mx, my, pix[0], pix[1], pix[2]);
|
// pmhlistener->pointerMoved (true, cropHandler.colorParams.working, mx, my, pix[0], pix[1], pix[2]);
|
||||||
|
|||||||
Reference in New Issue
Block a user