void EXIFAdjust::applyMetadata(QByteArray& exifData) { KPMetadata meta; meta.setExif(exifData); long int num=1, den=1; if (d->brightnessCheck->isChecked()) { meta.convertToRational(d->brightnessEdit->value(), &num, &den, 1); meta.setExifTagRational("Exif.Photo.BrightnessValue", num, den); } else meta.removeExifTag("Exif.Photo.BrightnessValue"); if (d->gainControlCheck->isChecked()) meta.setExifTagLong("Exif.Photo.GainControl", d->gainControlCB->currentIndex()); else if (d->gainControlCheck->isValid()) meta.removeExifTag("Exif.Photo.GainControl"); if (d->contrastCheck->isChecked()) meta.setExifTagLong("Exif.Photo.Contrast", d->contrastCB->currentIndex()); else if (d->contrastCheck->isValid()) meta.removeExifTag("Exif.Photo.Contrast"); if (d->saturationCheck->isChecked()) meta.setExifTagLong("Exif.Photo.Saturation", d->saturationCB->currentIndex()); else if (d->saturationCheck->isValid()) meta.removeExifTag("Exif.Photo.Saturation"); if (d->sharpnessCheck->isChecked()) meta.setExifTagLong("Exif.Photo.Sharpness", d->sharpnessCB->currentIndex()); else if (d->sharpnessCheck->isValid()) meta.removeExifTag("Exif.Photo.Sharpness"); if (d->customRenderedCheck->isChecked()) meta.setExifTagLong("Exif.Photo.CustomRendered", d->customRenderedCB->currentIndex()); else if (d->customRenderedCheck->isValid()) meta.removeExifTag("Exif.Photo.CustomRendered"); #if KEXIV2_VERSION >= 0x010000 exifData = meta.getExifEncoded(); #else exifData = meta.getExif(); #endif }
void EXIFDevice::applyMetadata(QByteArray& exifData) { KPMetadata meta; meta.setExif(exifData); long int num=1, den=1; if (d->makeCheck->isChecked()) meta.setExifTagString("Exif.Image.Make", d->makeEdit->text()); else meta.removeExifTag("Exif.Image.Make"); if (d->modelCheck->isChecked()) meta.setExifTagString("Exif.Image.Model", d->modelEdit->text()); else meta.removeExifTag("Exif.Image.Model"); if (d->deviceTypeCheck->isChecked()) meta.setExifTagLong("Exif.Photo.FileSource", d->deviceTypeCB->currentIndex()+1); else if (d->deviceTypeCheck->isValid()) meta.removeExifTag("Exif.Photo.FileSource"); if (d->exposureTimeCheck->isChecked()) { meta.setExifTagRational("Exif.Photo.ExposureTime", d->exposureTimeNumEdit->value(), d->exposureTimeDenEdit->value()); double exposureTime = (double)(d->exposureTimeNumEdit->value())/ (double)(d->exposureTimeDenEdit->value()); double shutterSpeed = (-1.0)*(std::log(exposureTime)/std::log(2.0)); meta.convertToRational(shutterSpeed, &num, &den, 8); meta.setExifTagRational("Exif.Photo.ShutterSpeedValue", num, den); } else { meta.removeExifTag("Exif.Photo.ExposureTime"); meta.removeExifTag("Exif.Photo.ShutterSpeedValue"); } if (d->exposureProgramCheck->isChecked()) meta.setExifTagLong("Exif.Photo.ExposureProgram", d->exposureProgramCB->currentIndex()); else if (d->exposureProgramCheck->isValid()) meta.removeExifTag("Exif.Photo.ExposureProgram"); if (d->exposureModeCheck->isChecked()) meta.setExifTagLong("Exif.Photo.ExposureMode", d->exposureModeCB->currentIndex()); else if (d->exposureModeCheck->isValid()) meta.removeExifTag("Exif.Photo.ExposureMode"); if (d->exposureBiasCheck->isChecked()) { meta.convertToRational(d->exposureBiasEdit->value(), &num, &den, 1); meta.setExifTagRational("Exif.Photo.ExposureBiasValue", num, den); } else { meta.removeExifTag("Exif.Photo.ExposureBiasValue"); } if (d->meteringModeCheck->isChecked()) { long met = d->meteringModeCB->currentIndex(); meta.setExifTagLong("Exif.Photo.MeteringMode", met > 6 ? 255 : met); } else if (d->meteringModeCheck->isValid()) meta.removeExifTag("Exif.Photo.MeteringMode"); if (d->ISOSpeedCheck->isChecked()) { meta.setExifTagLong("Exif.Photo.ISOSpeedRatings", d->ISOSpeedCB->currentText().toLong()); meta.convertToRational(d->ISOSpeedCB->currentText().toDouble(), &num, &den, 1); meta.setExifTagRational("Exif.Photo.ExposureIndex", num, den); } else if (d->ISOSpeedCheck->isValid()) { meta.removeExifTag("Exif.Photo.ISOSpeedRatings"); meta.removeExifTag("Exif.Photo.ExposureIndex"); } if (d->sensingMethodCheck->isChecked()) { long sem = d->sensingMethodCB->currentIndex(); meta.setExifTagLong("Exif.Photo.SensingMethod", sem > 4 ? sem+2 : sem+1); } else if (d->sensingMethodCheck->isValid()) { meta.removeExifTag("Exif.Photo.SensingMethod"); } if (d->sceneTypeCheck->isChecked()) meta.setExifTagLong("Exif.Photo.SceneCaptureType", d->sceneTypeCB->currentIndex()); else if (d->sceneTypeCheck->isValid()) meta.removeExifTag("Exif.Photo.SceneCaptureType"); if (d->subjectDistanceTypeCheck->isChecked()) meta.setExifTagLong("Exif.Photo.SubjectDistanceRange", d->subjectDistanceTypeCB->currentIndex()); else if (d->subjectDistanceTypeCheck->isValid()) meta.removeExifTag("Exif.Photo.SubjectDistanceRange"); #if KEXIV2_VERSION >= 0x010000 exifData = meta.getExifEncoded(); #else exifData = meta.getExif(); #endif }