|
|
|
|
@ -76,43 +76,42 @@ bool cEXIF::fromFile(const QString& szFileName)
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
// 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<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);
|
|
|
|
|
}
|
|
|
|
|
// 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<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);
|
|
|
|
|
}
|
|
|
|
|
// 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);
|
|
|
|
|
|