diff --git a/cexif.cpp b/cexif.cpp index 922c96c..32cabaf 100644 --- a/cexif.cpp +++ b/cexif.cpp @@ -76,43 +76,42 @@ bool cEXIF::fromFile(const QString& szFileName) QImage image; image.loadFromData(static_cast(previewImage.pData()), static_cast(previewImage.size())); - QTransform rotation; - int angle = 0; - - switch(imageOrientation()) - { - case 8: - angle = 270; - break; - case 3: - angle = 180; - break; - case 6: - angle = 90; - break; - } - - if(angle != 0) - { - rotation.rotate(angle); - image = image.transformed(rotation); - } +// QTransform rotation; +// int angle = 0; + +// switch(imageOrientation()) +// { +// case 8: +// angle = 270; +// break; +// case 3: +// angle = 180; +// break; +// case 6: +// angle = 90; +// break; +// } + +// if(angle != 0) +// { +// rotation.rotate(angle); +// image = image.transformed(rotation); +// } m_previewList.append(image); } } - if(!xmpData.empty()) + if(!exifData.empty()) { - Exiv2::XmpData::const_iterator end = xmpData.end(); - - for(Exiv2::XmpData::const_iterator i = xmpData.begin(); i != end; ++i) + Exiv2::ExifData::const_iterator end = exifData.end(); + for(Exiv2::ExifData::const_iterator i = exifData.begin(); i != end; ++i) { - cXMPTag* lpTag = m_xmpTagList.find(QString::fromStdString(i->key())); + cEXIFTag* lpTag = m_exifTagList.find(i->tag(), i->ifdId()); if(lpTag) { - cXMPValue* lpValue = m_xmpValueList.add(lpTag); + cEXIFValue* lpValue = m_exifValueList.add(lpTag); if(lpValue) lpValue->setValue(QString::fromStdString(i->value().toString()), i->typeId(), i->count()); } @@ -127,42 +126,43 @@ bool cEXIF::fromFile(const QString& szFileName) QImage image; image.loadFromData(static_cast(previewImage.pData()), static_cast(previewImage.size())); - QTransform rotation; - int angle = 0; - - switch(imageOrientation()) - { - case 8: - angle = 270; - break; - case 3: - angle = 180; - break; - case 6: - angle = 90; - break; - } - - if(angle != 0) - { - rotation.rotate(angle); - image = image.transformed(rotation); - } +// QTransform rotation; +// int angle = 0; + +// switch(imageOrientation()) +// { +// case 8: +// angle = 270; +// break; +// case 3: +// angle = 180; +// break; +// case 6: +// angle = 90; +// break; +// } + +// if(angle != 0) +// { +// rotation.rotate(angle); +// image = image.transformed(rotation); +// } m_previewList.append(image); } } - if(!exifData.empty()) + if(!xmpData.empty()) { - Exiv2::ExifData::const_iterator end = exifData.end(); - for(Exiv2::ExifData::const_iterator i = exifData.begin(); i != end; ++i) + Exiv2::XmpData::const_iterator end = xmpData.end(); + + for(Exiv2::XmpData::const_iterator i = xmpData.begin(); i != end; ++i) { - cEXIFTag* lpTag = m_exifTagList.find(i->tag(), i->ifdId()); + cXMPTag* lpTag = m_xmpTagList.find(QString::fromStdString(i->key())); if(lpTag) { - cEXIFValue* lpValue = m_exifValueList.add(lpTag); + cXMPValue* lpValue = m_xmpValueList.add(lpTag); if(lpValue) lpValue->setValue(QString::fromStdString(i->value().toString()), i->typeId(), i->count()); } @@ -177,27 +177,27 @@ bool cEXIF::fromFile(const QString& szFileName) QImage image; image.loadFromData(static_cast(previewImage.pData()), static_cast(previewImage.size())); - QTransform rotation; - int angle = 0; - - switch(imageOrientation()) - { - case 8: - angle = 270; - break; - case 3: - angle = 180; - break; - case 6: - angle = 90; - break; - } - - if(angle != 0) - { - rotation.rotate(angle); - image = image.transformed(rotation); - } +// QTransform rotation; +// int angle = 0; + +// switch(imageOrientation()) +// { +// case 8: +// angle = 270; +// break; +// case 3: +// angle = 180; +// break; +// case 6: +// angle = 90; +// break; +// } + +// if(angle != 0) +// { +// rotation.rotate(angle); +// image = image.transformed(rotation); +// } m_previewList.append(image); } @@ -278,7 +278,31 @@ bool cEXIF::fromFile(const QString& szFileName) } if(index != -1) + { + QTransform rotation; + int angle = 0; + + switch(imageOrientation()) + { + case 8: + angle = 270; + break; + case 3: + angle = 180; + break; + case 6: + angle = 90; + break; + } + m_thumbnail = m_previewList[index].scaled(THUMBNAIL_WIDTH, THUMBNAIL_HEIGHT, Qt::KeepAspectRatio, Qt::SmoothTransformation); + + if(angle != 0) + { + rotation.rotate(angle); + m_thumbnail = m_thumbnail.transformed(rotation); + } + } } return(true); diff --git a/cmainwindow.cpp b/cmainwindow.cpp index 29e2ff9..0bedcf4 100644 --- a/cmainwindow.cpp +++ b/cmainwindow.cpp @@ -526,7 +526,7 @@ OVERWRITE cMainWindow::exportFile(const EXPORTSETTINGS& exportSettings, cEXIF* l destFile = fileInfo.baseName() + "_converted" + "." + extension; break; case FILE_ADD_TAG: - destFile = replaceTags(fileInfo.baseName(), lpExif, extension, false) + "." + extension; + destFile = replaceTags(exportSettings.fileTag, lpExif, extension, false) + "." + extension; break; } break; @@ -574,6 +574,28 @@ OVERWRITE cMainWindow::exportFile(const EXPORTSETTINGS& exportSettings, cEXIF* l cImage image(lpExif->fileName()); if(!image.isNull()) { + QTransform rotation; + int angle = 0; + + switch(lpExif->imageOrientation()) + { + case 8: + angle = 270; + break; + case 3: + angle = 180; + break; + case 6: + angle = 90; + break; + } + + if(angle != 0) + { + rotation.rotate(angle); + image = image.transformed(rotation); + } + QFileInfo info(destFile); if(info.exists())