dng_jpeg_preview_tag_set::dng_jpeg_preview_tag_set (dng_tiff_directory &directory, const dng_jpeg_preview &preview, const dng_ifd &ifd) : dng_preview_tag_set (directory, preview, ifd) , fCoefficientsTag (tcYCbCrCoefficients, fCoefficientsData, 3) , fSubSamplingTag (tcYCbCrSubSampling, fSubSamplingData, 2) , fPositioningTag (tcYCbCrPositioning, preview.fYCbCrPositioning) , fReferenceTag (tcReferenceBlackWhite, fReferenceData, 6) { if (preview.fPhotometricInterpretation == piYCbCr) { fCoefficientsData [0] = dng_urational (299, 1000); fCoefficientsData [1] = dng_urational (587, 1000); fCoefficientsData [2] = dng_urational (114, 1000); directory.Add (&fCoefficientsTag); fSubSamplingData [0] = (uint16) preview.fYCbCrSubSampling.h; fSubSamplingData [1] = (uint16) preview.fYCbCrSubSampling.v; directory.Add (&fSubSamplingTag); directory.Add (&fPositioningTag); fReferenceData [0] = dng_urational ( 0, 1); fReferenceData [1] = dng_urational (255, 1); fReferenceData [2] = dng_urational (128, 1); fReferenceData [3] = dng_urational (255, 1); fReferenceData [4] = dng_urational (128, 1); fReferenceData [5] = dng_urational (255, 1); directory.Add (&fReferenceTag); } }
dng_raw_preview_tag_set::dng_raw_preview_tag_set (dng_tiff_directory &directory, const dng_raw_preview &preview, const dng_ifd &ifd) : dng_preview_tag_set (directory, preview, ifd) , fOpcodeList2Tag (tcOpcodeList2, ttUndefined, 0, NULL) , fWhiteLevelTag (tcWhiteLevel, fWhiteLevelData, preview.fImage->Planes ()) { if (preview.fOpcodeList2Data.Get ()) { fOpcodeList2Tag.SetData (preview.fOpcodeList2Data->Buffer ()); fOpcodeList2Tag.SetCount (preview.fOpcodeList2Data->LogicalSize ()); directory.Add (&fOpcodeList2Tag); } if (preview.fImage->PixelType () == ttFloat) { for (uint32 j = 0; j < kMaxColorPlanes; j++) { fWhiteLevelData [j] = 32768; } directory.Add (&fWhiteLevelTag); } }
dng_preview_tag_set::dng_preview_tag_set (dng_tiff_directory &directory, const dng_preview &preview, const dng_ifd &ifd) : dng_basic_tag_set (directory, ifd) , fApplicationNameTag (tcPreviewApplicationName, preview.fInfo.fApplicationName, false) , fApplicationVersionTag (tcPreviewApplicationVersion, preview.fInfo.fApplicationVersion, false) , fSettingsNameTag (tcPreviewSettingsName, preview.fInfo.fSettingsName, false) , fSettingsDigest (preview.fInfo.fSettingsDigest) , fSettingsDigestTag (tcPreviewSettingsDigest, fSettingsDigest.data, 16) , fColorSpaceTag (tcPreviewColorSpace, preview.fInfo.fColorSpace) , fDateTimeTag (tcPreviewDateTime, preview.fInfo.fDateTime, true) { if (preview.fInfo.fApplicationName.NotEmpty ()) { directory.Add (&fApplicationNameTag); } if (preview.fInfo.fApplicationVersion.NotEmpty ()) { directory.Add (&fApplicationVersionTag); } if (preview.fInfo.fSettingsName.NotEmpty ()) { directory.Add (&fSettingsNameTag); } if (preview.fInfo.fSettingsDigest.IsValid ()) { directory.Add (&fSettingsDigestTag); } if (preview.fInfo.fColorSpace != previewColorSpace_MaxEnum) { directory.Add (&fColorSpaceTag); } if (preview.fInfo.fDateTime.NotEmpty ()) { directory.Add (&fDateTimeTag); } }