SVN commit 539337 by cgilles:
digikam from trunk : - DImg API : new method to store an ICC profile from memory to a ICC file. - Fix method name to set/get to/from memory to/from file. - Forget to close profile file at end. Paco, this is the famous way to extract an embedded ICC profil into an image and to store it into a file. I remember that we have already discuted about this subject in the past when you have written your Color Management image plugin... CCMAIL: [hidden email], [hidden email] M +15 -1 libs/dimg/dimg.cpp M +2 -1 libs/dimg/dimg.h M +2 -2 utilities/imageeditor/canvas/dimginterface.cpp --- trunk/extragear/graphics/digikam/libs/dimg/dimg.cpp #539336:539337 @@ -568,7 +568,7 @@ return m_priv->isReadOnly; } -bool DImg::setICCProfilFromFile(const QString& filePath) +bool DImg::getICCProfilFromFile(const QString& filePath) { QFile file(filePath); if ( !file.open(IO_ReadOnly) ) @@ -578,9 +578,23 @@ QDataStream stream( &file ); stream.readRawBytes(data.data(), data.size()); setICCProfil(data); + file.close(); return true; } +bool DImg::setICCProfilToFile(const QString& filePath) +{ + QFile file(filePath); + if ( !file.open(IO_WriteOnly) ) + return false; + + QByteArray data(getICCProfil()); + QDataStream stream( &file ); + stream.writeRawBytes(data.data(), data.size()); + file.close(); + return true; +} + void DImg::setICCProfil(const QByteArray& profile) { m_priv->ICCProfil = profile; --- trunk/extragear/graphics/digikam/libs/dimg/dimg.h #539336:539337 @@ -209,7 +209,8 @@ QByteArray getIptc() const; QByteArray metadata(METADATA key) const; - bool setICCProfilFromFile(const QString& filePath); + bool getICCProfilFromFile(const QString& filePath); + bool setICCProfilToFile(const QString& filePath); void setICCProfil(const QByteArray& profile); QByteArray getICCProfil() const; --- trunk/extragear/graphics/digikam/utilities/imageeditor/canvas/dimginterface.cpp #539336:539337 @@ -234,7 +234,7 @@ trans.setProfiles( QFile::encodeName(d->cmSettings->inputSetting), QFile::encodeName(d->cmSettings->workspaceSetting)); trans.apply( d->image ); - d->image.setICCProfilFromFile(QFile::encodeName(d->cmSettings->inputSetting)); + d->image.getICCProfilFromFile(QFile::encodeName(d->cmSettings->inputSetting)); } else { @@ -255,7 +255,7 @@ trans.setProfiles( QFile::encodeName(d->cmSettings->inputSetting), QFile::encodeName(d->cmSettings->workspaceSetting)); trans.apply( d->image ); - d->image.setICCProfilFromFile(QFile::encodeName(d->cmSettings->inputSetting)); + d->image.getICCProfilFromFile(QFile::encodeName(d->cmSettings->inputSetting)); } } } _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |