[Digikam-devel] extragear/graphics/digikam
Gilles Caulier
caulier.gilles at free.fr
Wed May 10 00:03:01 BST 2006
SVN commit 539211 by cgilles:
digikam from trunk :
- DImg API : new method to store an ICC profile in image container from an ICC profile file.
- image editor DImg interface : store the input ICC profile used in color management workflow into the current DImg instance of image editor.
- When a RAW image is saved like PNG, TIFF, or JPEG, the input profile (camera profile in fact) is saved in target file like UFRAW does.
CCMAIL: digikam-devel at kde.org, francisco.jct at gmail.com
M +13 -0 libs/dimg/dimg.cpp
M +1 -0 libs/dimg/dimg.h
M +4 -1 utilities/imageeditor/canvas/dimginterface.cpp
--- trunk/extragear/graphics/digikam/libs/dimg/dimg.cpp #539210:539211
@@ -568,6 +568,19 @@
return m_priv->isReadOnly;
}
+bool DImg::setICCProfilFromFile(const QString& filePath)
+{
+ QFile file(filePath);
+ if ( !file.open(IO_ReadOnly) )
+ return false;
+
+ QByteArray data(file.size());
+ QDataStream stream( &file );
+ stream.readRawBytes(data.data(), data.size());
+ setICCProfil(data);
+ return true;
+}
+
void DImg::setICCProfil(const QByteArray& profile)
{
m_priv->ICCProfil = profile;
--- trunk/extragear/graphics/digikam/libs/dimg/dimg.h #539210:539211
@@ -209,6 +209,7 @@
QByteArray getIptc() const;
QByteArray metadata(METADATA key) const;
+ bool setICCProfilFromFile(const QString& filePath);
void setICCProfil(const QByteArray& profile);
QByteArray getICCProfil() const;
--- trunk/extragear/graphics/digikam/utilities/imageeditor/canvas/dimginterface.cpp #539210:539211
@@ -231,8 +231,10 @@
// Ask or apply?
if (apply)
{
- trans.setProfiles( QFile::encodeName(d->cmSettings->inputSetting), QFile::encodeName(d->cmSettings->workspaceSetting));
+ trans.setProfiles( QFile::encodeName(d->cmSettings->inputSetting),
+ QFile::encodeName(d->cmSettings->workspaceSetting));
trans.apply( d->image );
+ d->image.setICCProfilFromFile(QFile::encodeName(d->cmSettings->inputSetting));
}
else
{
@@ -253,6 +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));
}
}
}
More information about the Digikam-devel
mailing list