digiKam use libPGF : give a feedback...

  • Anonymous - 2009-06-04

    Hi all,

    digiKam project http://www.digikam.org use internally a modified version of libpgf (a little bit) to load save photo.

    I have some feedback to give to the team to improve library. I'm on the right room ?

    Gilles Caulier
    digiKam project coordinator

    • Andreas Hofmann

      Andreas Hofmann - 2009-06-05

      Hi Gilles Caulier

      Great to hear that libpgf is used for digikam and thanks for feedback. Yes you are right here to give some more feedback for improvement.

      Best regards,
      Andreas Hofmann

      • Anonymous - 2009-06-09

        I found another important bug in libPGF. User data length is limited in size to use UINT16 instead UINT32.

        Look my commits :


        Gilles Caulier

        • Anonymous - 2009-06-09

          These commits break compatibility with pgf file generated with official PGF command line tool.

          I'm wait your tip about. It still very important to be able to host more than 64KB on user data area.

          Gilles Caulier

    • Anonymous - 2009-06-06

      Great !!!

      So this is what i have do recently :

      1/ For better integration, libpgf have been integrated directly under digiKam core here :


      digiKam compile under Linux, Mac and Windows. we use CMake for that.

      Under windows, i have fixed some little problem with MinGw, not MSVC 9. Some pedantic and warnings due to use GCC 3.x. No more

      2/ My first very important change is this commit :


      It include void *data parameter to be able to use callback method with C++ code and to be thread safe. Look my commit message for details.

      3/ I have found a bug with this commit :


      The cast from 16 bits/color/pixels PGF image to 8 bits/color/pixels (QImage here) do not work.

      In my case QImage has a depth of 32. 32%16 = 0 so color component will be casted to 16 bits into a 8 bits container.

      4/ Here i have 2 command line test programs to check PGF integration :


      One to load PGF scaled image to QImage, and another one limited to 32 bits RGB image used to stream PGF data (it will be used later to store thumbnail into a database instead to use a cache from HDD with PNG format)

      5/ Here you can see thre PGF loader for Digikam::Dimg image container (which support 16 bist color depth - QImage is only limited to 8 bits color depth).


      DImg is used to load image in digiKam image editor.

      6/ Very important question !!! How to store metadata as Exif/IPTC/XMP.

      This point must be fixed in a standard way (at least defined somewhere if you want to see PGF used in photography world).

      Of course, the single byte array available into PGF header can be used for that. But 3 sort of data (in binary form) need to be hosted here : EXIF, IPTC/IIM, and XMP. I need some guide here, because i will used a way in digiKam and _also_ in Exiv2 library (http://www.exiv2.org) where PNG and JPEG2000 are already supported in read/write mode (implemented by me). I can use PNG or JPEG2000 encapsulation form, but i would to see your tip before....

      Storing Exif, IPTC, and XMP is very important for photograph. PGF will be used for archiving purpose in digiKam. without these metadata, PGF format will never be support by photographers.

      Thanks in advance for your help and your tips.


      Gilles Caulier

    • Anonymous - 2009-06-06
    • Anonymous - 2009-06-06

      Another question : LibPGF support RGBA 64 bits ? I can see RGB48 mode but not RGB64. To be homogeneous with RGB24 and RBGA32, RGBA64 bits need to be supported.


      Gilles Caulier

    • Anonymous - 2009-06-09

      Another little problem to compile under MACOSX :


      Gilles Caulier


Log in to post a comment.