update preview orientation
This commit is contained in:
@@ -76,27 +76,77 @@ bool cEXIF::fromFile(const QString& szFileName)
|
|||||||
QImage image;
|
QImage image;
|
||||||
image.loadFromData(static_cast<const uchar*>(previewImage.pData()), static_cast<qint32>(previewImage.size()));
|
image.loadFromData(static_cast<const uchar*>(previewImage.pData()), static_cast<qint32>(previewImage.size()));
|
||||||
|
|
||||||
QTransform rotation;
|
// QTransform rotation;
|
||||||
int angle = 0;
|
// int angle = 0;
|
||||||
|
|
||||||
switch(imageOrientation())
|
// switch(imageOrientation())
|
||||||
{
|
// {
|
||||||
case 8:
|
// case 8:
|
||||||
angle = 270;
|
// angle = 270;
|
||||||
break;
|
// break;
|
||||||
case 3:
|
// case 3:
|
||||||
angle = 180;
|
// angle = 180;
|
||||||
break;
|
// break;
|
||||||
case 6:
|
// case 6:
|
||||||
angle = 90;
|
// angle = 90;
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
|
||||||
if(angle != 0)
|
// if(angle != 0)
|
||||||
|
// {
|
||||||
|
// rotation.rotate(angle);
|
||||||
|
// image = image.transformed(rotation);
|
||||||
|
// }
|
||||||
|
|
||||||
|
m_previewList.append(image);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!exifData.empty())
|
||||||
|
{
|
||||||
|
Exiv2::ExifData::const_iterator end = exifData.end();
|
||||||
|
for(Exiv2::ExifData::const_iterator i = exifData.begin(); i != end; ++i)
|
||||||
|
{
|
||||||
|
cEXIFTag* lpTag = m_exifTagList.find(i->tag(), i->ifdId());
|
||||||
|
|
||||||
|
if(lpTag)
|
||||||
{
|
{
|
||||||
rotation.rotate(angle);
|
cEXIFValue* lpValue = m_exifValueList.add(lpTag);
|
||||||
image = image.transformed(rotation);
|
if(lpValue)
|
||||||
|
lpValue->setValue(QString::fromStdString(i->value().toString()), i->typeId(), i->count());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Exiv2::PreviewManager previewManager(*image);
|
||||||
|
Exiv2::PreviewPropertiesList previewPropertiesList = previewManager.getPreviewProperties();
|
||||||
|
|
||||||
|
for(Exiv2::PreviewPropertiesList::const_iterator i = previewPropertiesList.begin();i != previewPropertiesList.end();i++)
|
||||||
|
{
|
||||||
|
Exiv2::PreviewImage previewImage = previewManager.getPreviewImage(*i);
|
||||||
|
QImage image;
|
||||||
|
image.loadFromData(static_cast<const uchar*>(previewImage.pData()), static_cast<qint32>(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);
|
||||||
|
// }
|
||||||
|
|
||||||
m_previewList.append(image);
|
m_previewList.append(image);
|
||||||
}
|
}
|
||||||
@@ -127,77 +177,27 @@ bool cEXIF::fromFile(const QString& szFileName)
|
|||||||
QImage image;
|
QImage image;
|
||||||
image.loadFromData(static_cast<const uchar*>(previewImage.pData()), static_cast<qint32>(previewImage.size()));
|
image.loadFromData(static_cast<const uchar*>(previewImage.pData()), static_cast<qint32>(previewImage.size()));
|
||||||
|
|
||||||
QTransform rotation;
|
// QTransform rotation;
|
||||||
int angle = 0;
|
// int angle = 0;
|
||||||
|
|
||||||
switch(imageOrientation())
|
// switch(imageOrientation())
|
||||||
{
|
// {
|
||||||
case 8:
|
// case 8:
|
||||||
angle = 270;
|
// angle = 270;
|
||||||
break;
|
// break;
|
||||||
case 3:
|
// case 3:
|
||||||
angle = 180;
|
// angle = 180;
|
||||||
break;
|
// break;
|
||||||
case 6:
|
// case 6:
|
||||||
angle = 90;
|
// angle = 90;
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
|
|
||||||
if(angle != 0)
|
// if(angle != 0)
|
||||||
{
|
// {
|
||||||
rotation.rotate(angle);
|
// rotation.rotate(angle);
|
||||||
image = image.transformed(rotation);
|
// image = image.transformed(rotation);
|
||||||
}
|
// }
|
||||||
|
|
||||||
m_previewList.append(image);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!exifData.empty())
|
|
||||||
{
|
|
||||||
Exiv2::ExifData::const_iterator end = exifData.end();
|
|
||||||
for(Exiv2::ExifData::const_iterator i = exifData.begin(); i != end; ++i)
|
|
||||||
{
|
|
||||||
cEXIFTag* lpTag = m_exifTagList.find(i->tag(), i->ifdId());
|
|
||||||
|
|
||||||
if(lpTag)
|
|
||||||
{
|
|
||||||
cEXIFValue* lpValue = m_exifValueList.add(lpTag);
|
|
||||||
if(lpValue)
|
|
||||||
lpValue->setValue(QString::fromStdString(i->value().toString()), i->typeId(), i->count());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Exiv2::PreviewManager previewManager(*image);
|
|
||||||
Exiv2::PreviewPropertiesList previewPropertiesList = previewManager.getPreviewProperties();
|
|
||||||
|
|
||||||
for(Exiv2::PreviewPropertiesList::const_iterator i = previewPropertiesList.begin();i != previewPropertiesList.end();i++)
|
|
||||||
{
|
|
||||||
Exiv2::PreviewImage previewImage = previewManager.getPreviewImage(*i);
|
|
||||||
QImage image;
|
|
||||||
image.loadFromData(static_cast<const uchar*>(previewImage.pData()), static_cast<qint32>(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);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_previewList.append(image);
|
m_previewList.append(image);
|
||||||
}
|
}
|
||||||
@@ -278,7 +278,31 @@ bool cEXIF::fromFile(const QString& szFileName)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(index != -1)
|
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);
|
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);
|
return(true);
|
||||||
|
|||||||
+23
-1
@@ -526,7 +526,7 @@ OVERWRITE cMainWindow::exportFile(const EXPORTSETTINGS& exportSettings, cEXIF* l
|
|||||||
destFile = fileInfo.baseName() + "_converted" + "." + extension;
|
destFile = fileInfo.baseName() + "_converted" + "." + extension;
|
||||||
break;
|
break;
|
||||||
case FILE_ADD_TAG:
|
case FILE_ADD_TAG:
|
||||||
destFile = replaceTags(fileInfo.baseName(), lpExif, extension, false) + "." + extension;
|
destFile = replaceTags(exportSettings.fileTag, lpExif, extension, false) + "." + extension;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -574,6 +574,28 @@ OVERWRITE cMainWindow::exportFile(const EXPORTSETTINGS& exportSettings, cEXIF* l
|
|||||||
cImage image(lpExif->fileName());
|
cImage image(lpExif->fileName());
|
||||||
if(!image.isNull())
|
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);
|
QFileInfo info(destFile);
|
||||||
|
|
||||||
if(info.exists())
|
if(info.exists())
|
||||||
|
|||||||
Reference in New Issue
Block a user