Author: jghali
Date: Thu Mar 19 11:08:06 2020
New Revision: 23515

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23515
Log:
Some preparation work targetted at handling sRGB colorspace info in PNGs

Modified:
    trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp
    trunk/Scribus/scribus/colormgmt/sccolorprofile.h
    trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h
    trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp
    trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h

Modified: trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23515&path=/trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp  (original)
+++ trunk/Scribus/scribus/colormgmt/sccolorprofile.cpp  Thu Mar 19 11:08:06 2020
@@ -61,6 +61,13 @@
        return QString();
 }
 
+bool ScColorProfile::save(QByteArray& profileData) const
+{
+       if (m_data)
+               return m_data->save(profileData);
+       return false;
+}
+
 bool ScColorProfile::operator==(const ScColorProfile& other) const
 {
        return m_data == other.m_data;

Modified: trunk/Scribus/scribus/colormgmt/sccolorprofile.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23515&path=/trunk/Scribus/scribus/colormgmt/sccolorprofile.h
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sccolorprofile.h    (original)
+++ trunk/Scribus/scribus/colormgmt/sccolorprofile.h    Thu Mar 19 11:08:06 2020
@@ -40,6 +40,8 @@
        const ScColorProfileData* data() const { return m_data.data(); }
        QString dataHash() const;
 
+       bool save(QByteArray& profileData) const;
+
        bool operator==(const ScColorProfile& prof) const;
        
 protected:

Modified: trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23515&path=/trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h        (original)
+++ trunk/Scribus/scribus/colormgmt/sccolorprofiledata.h        Thu Mar 19 
11:08:06 2020
@@ -33,6 +33,7 @@
        virtual eProfileClass   deviceClass() const = 0;
        virtual bool    isSuitableForOutput() const = 0;
        virtual QString productDescription() const = 0;
+       virtual bool    save(QByteArray& profileData) const = 0;
 };
 
 #endif

Modified: trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23515&path=/trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp (original)
+++ trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.cpp Thu Mar 19 
11:08:06 2020
@@ -106,3 +106,24 @@
                m_profileHandle = nullptr;
        }
 }
+
+bool ScLcms2ColorProfileImpl::save(QByteArray& profileData) const
+{
+       if (!m_profileHandle)
+               return false;
+       profileData.clear();
+
+       // First retrieve profile size
+       cmsUInt32Number bytesNeeded = 0;
+       bool done = cmsSaveProfileToMem(m_profileHandle, 0, &bytesNeeded);
+       if (!done)
+               return false;
+
+       // Allocate array for profile data
+       profileData.resize(bytesNeeded);
+       if (profileData.size() != bytesNeeded)
+               return false;
+       done = cmsSaveProfileToMem(m_profileHandle, profileData.data(), 
&bytesNeeded);
+
+       return done;
+}

Modified: trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23515&path=/trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h
==============================================================================
--- trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h   (original)
+++ trunk/Scribus/scribus/colormgmt/sclcms2colorprofileimpl.h   Thu Mar 19 
11:08:06 2020
@@ -28,6 +28,7 @@
        virtual eProfileClass   deviceClass() const;
        virtual bool            isSuitableForOutput() const;
        virtual QString         productDescription() const;
+       virtual bool            save(QByteArray& profileData) const;
 
 protected:
        cmsHPROFILE     m_profileHandle;


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to