Add multi-frame handling.

- Exif of all frames are displayed in the Editor's Exif tab (without
separator)
- isHDR and isPixelShift is added to the data files stored in cache
- In the Editor panel, the QuickInfo frame display the HDR and
PixelShift information, as well as the number of frame and bit-depth for
HDR image
- the number of frame is provided by dcraw. If not set, it is provided
by the Exif's main IFD count
- the PixelShift information (for Pentax as of now) is provided by
looking at the Exif informations
- the HDR information is provided by the Exif information of the first
frame for Pentax raw files, or by the bitspersample, sampleformat and
compression tags for other files

TODO: add icons to the thumbnails to tag HDR and PixelShift files.
This commit is contained in:
Hombre57
2017-08-08 23:42:05 +02:00
parent b183a0b3c7
commit f23be9345c
45 changed files with 1529 additions and 265 deletions

View File

@@ -510,7 +510,7 @@ void ToolPanelCoordinator::initImage (rtengine::StagedImageProcessor* ipc_, bool
toneCurve->enableListener ();
if (ipc) {
const rtengine::ImageMetaData* pMetaData = ipc->getInitialImage()->getMetaData();
const rtengine::FramesMetaData* pMetaData = ipc->getInitialImage()->getMetaData();
exifpanel->setImageData (pMetaData);
iptcpanel->setImageData (pMetaData);
@@ -528,7 +528,7 @@ void ToolPanelCoordinator::initImage (rtengine::StagedImageProcessor* ipc_, bool
ipc->setImageTypeListener (this);
flatfield->setShortcutPath(Glib::path_get_dirname(ipc->getInitialImage()->getFileName()));
icm->setRawMeta (raw, (const rtengine::ImageData*)pMetaData);
icm->setRawMeta (raw, (const rtengine::FramesData*)pMetaData);
lensProf->setRawMeta (raw, pMetaData);
}
@@ -677,7 +677,7 @@ rtengine::RawImage* ToolPanelCoordinator::getDF()
return nullptr;
}
const rtengine::ImageMetaData *imd = ipc->getInitialImage()->getMetaData();
const rtengine::FramesMetaData *imd = ipc->getInitialImage()->getMetaData();
if(imd) {
int iso = imd->getISOSpeed();
@@ -698,7 +698,7 @@ rtengine::RawImage* ToolPanelCoordinator::getFF()
return nullptr;
}
const rtengine::ImageMetaData *imd = ipc->getInitialImage()->getMetaData();
const rtengine::FramesMetaData *imd = ipc->getInitialImage()->getMetaData();
if(imd) {
// int iso = imd->getISOSpeed(); temporarilly removed because unused