本文整理汇总了C++中exiv2::image::AutoPtr::setMetadata方法的典型用法代码示例。如果您正苦于以下问题:C++ AutoPtr::setMetadata方法的具体用法?C++ AutoPtr::setMetadata怎么用?C++ AutoPtr::setMetadata使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类exiv2::image::AutoPtr
的用法示例。
在下文中一共展示了AutoPtr::setMetadata方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TransferExif
bool ptImageHelper::TransferExif(const QString ASourceFile, const QString ATargetFile)
{
if (ASourceFile == ATargetFile ||
ASourceFile.trimmed().isEmpty() ||
ATargetFile.trimmed().isEmpty())
return false;
try {
if (Exiv2::ImageFactory::getType(ASourceFile.toLocal8Bit().data()) == Exiv2::ImageType::none)
return false;
Exiv2::Image::AutoPtr hSourceImage = Exiv2::ImageFactory::open(ASourceFile.toLocal8Bit().data());
if (!hSourceImage.get()) return false;
hSourceImage->readMetadata();
Exiv2::Image::AutoPtr hTargetImage = Exiv2::ImageFactory::open(ATargetFile.toLocal8Bit().data());
hTargetImage->clearMetadata();
hTargetImage->setMetadata(*hSourceImage);
hTargetImage->writeMetadata();
return true;
} catch (Exiv2::AnyError& Error) {
if (Settings->GetInt("JobMode") == 0) {
ptMessageBox::warning(0 ,"Exiv2 Error","No exif data written!\nCaught Exiv2 exception '" + QString(Error.what()) + "'\n");
} else {
std::cout << "Caught Exiv2 exception '" << Error << "'\n";
}
}
return false;
}
示例2: saveImageAs
void ImageView::saveImageAs()
{
Exiv2::Image::AutoPtr exifImage;
Exiv2::Image::AutoPtr newExifImage;
bool exifError = false;
setCursorHiding(false);
QString fileName = QFileDialog::getSaveFileName(this,
tr("Save image as"),
currentImageFullPath,
tr("Images") + " (*.jpg *.jpeg *.jpe *.png *.bmp *.ppm *.pgm *.pbm *.xbm *.xpm)");
if (!fileName.isEmpty()) {
try {
exifImage = Exiv2::ImageFactory::open(currentImageFullPath.toStdString());
exifImage->readMetadata();
}
catch (Exiv2::Error &error) {
exifError = true;
}
if (!displayPixmap.save(fileName, 0, GData::defaultSaveQuality)) {
QMessageBox msgBox;
msgBox.critical(this, tr("Error"), tr("Failed to save image."));
} else {
if (!exifError) {
try {
newExifImage = Exiv2::ImageFactory::open(fileName.toStdString());
newExifImage->setMetadata(*exifImage);
newExifImage->writeMetadata();
}
catch (Exiv2::Error &error) {
exifError = true;
}
}
setFeedback(tr("Image saved."));
}
}
if (mainWindow->isFullScreen()) {
setCursorHiding(true);
}
}