Bug 103176 - 16bit/channel framework for digikam
Summary: 16bit/channel framework for digikam
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: DImg-Core (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-04-04 00:59 UTC by Thorsten Schnebeck
Modified: 2017-08-08 15:01 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 0.9.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thorsten Schnebeck 2005-04-04 00:59:15 UTC
Version:            (using KDE KDE 3.4.0)
Installed from:    Compiled From Sources
OS:                Linux

From the devel-List:
> 
> Le mercredi 30 Mars 2005 08:46 PM, Thorsten Schnebeck a écrit :
> > So, I don't think, that I am a professional photograph but I am ambitious.
> > So I am a little bit unhappy to read that 16bit/channel has no priority.
> > This is _the_ missing link in digikams exellent feature list. Of course I
> > have tons of ideas for new feature but every time I thing the more feature
> > digikam gets the harder is it to port this to a new 16bit/channel
> > framework. Reading in Trolltechs docs about QImage in Qt-4.0 I see there
> > is no support. Reading in digikams docs the old framework discussion text
> > seems to be gone.
> 
> 16 bits color/pixel : please make a new entry in B.K.O.
> 
> >
> > Now I see krita is 16bit ready only waiting for next release to finish the
> > missing code and I see digikam gets a CImg plugin using a template library
> > which is 16bit-aware. So there is hope :-)
> 
> Krita use ImageMagick whitch support 16 bits/color/pixel. Using imagemagick
> in  image editor framework is a solution. Actually Imlib2 is used in for
> some  performance goal.
> 
> CImg : i have played with this library using in Photograph Restoration
> plugin.  It's work in RGBA mode 8 bits/color/pixel and it an unoptimized
> framework. 
> 
> Gilles Caulier

If digikam would use a 16Bit/Ch framework, there is no need to handle raw-format in a special way. You can try the test version of bibble ( http://www.bibblelabs.com ) to see how much more intuitive this is.

Bye

  Thorsten
Comment 1 Dennis Gnad 2005-11-06 19:05:13 UTC
yeah would be really nice..

digikam should now maybe wait for krita to be ready..
then use something like a kritapart for it
Comment 2 Thorsten Schnebeck 2005-11-06 19:31:49 UTC
too late ;-)
http://www.omat.nl/drupal/?q=node/30
Comment 3 caulier.gilles 2005-11-06 20:19:09 UTC
To clarify any points about my current jobs in digiKam, these are fresh new about 16 bits/color/pixel and RAW files support :

1/ RAW file support in 8 bits/color/pixel complete on my computer. showfoto and image editor can load (not save) all RAW file format supported by dcraw program. I have also fixed parsing code to identify RAW files with current dcraw::parce.c implementation. This is fix any problem with DNG file format.
This code is ready to commit. I will done it after 0.8.0 release date planed to november 15.

2/ DImage is currently in development and based on Renchi Raju implementation :
  - RAW files can be loaded in 16 bits/color/pixel using dcraw.
  - TIFF files can be loaded in 8/16 bits/color/pixel.
  - PNG files can be loaded in 8/16 bits/color/pixel
  - JPEG files can be loaded and saved in 8 bits/color/pixel. All metadat are preserved (JPEG/IPTC/COM).
  - ALL others image file format are loaded using QImage interface in 8 bits/color/pixel.
  - TODO  : 
       * writing save PNG/TIFF methods
       * writing load/save PNM methods in 8/16 bits/color/pixel.
       * writing save digikam comments in PNG and PNM (like with JPEG files)
       * Metadata support for TIFF file (IPTC).
       * image editor and showfoto intergration (acutally DImage works with a dedicaced small image viewer based on image editor canvas).
       * Fixed all image filters in digikam/libs to support 16 bits/color/pixel.
       * Fixed all image plugins in digikam core and DigikamImagePlugins to support 16 bits/color/pixel.

... And that all for 0.9.0 release (outch...)

If there are any volonters to help me in this large task, please let's me hear...

Regards

Gilles Caulier
Comment 4 Tom Albers 2005-11-12 15:39:56 UTC
*** Bug 116161 has been marked as a duplicate of this bug. ***
Comment 5 caulier.gilles 2005-11-24 12:12:13 UTC
SVN commit 482869 by cgilles:

Big changes in digiKam. 
This is the new code dedicaced to 0.9.0 unstable developement branch!!!
digiKam users, please take a care...

Core:

==> New image properties sidebar implementation to display exif, histogram, and image comments & tags to the left of windows using sidebar. 
    This way remove all image properties dialogs and reduce main contextual popup menu (BUG 109096, 109817, 109992, 113103).

==> New DImg framework to work "à la QImage" with image in 8/16 bits/color/pixel(BUG 103176). 
    The code is based on incomplete DImage implementation from Renchi Raju. I had fixed and improved this one.
    Native file formats implemented are JPEG, PNG, TIFF, RAW (dcraw), PPM.
    ICC profils and Meta-data are preserved. lcms is used to manage colors rendering manually or automaticly (BUG 87823).
    Now, There is a new digiKam depency with lcms.

Showfoto: 

- Image properties sidebar support
- All images from a folder can be loaded at the same time.
- Add DImg support.
- Thumbbar moved to the left. Image properties side bar to the right to make a consistant GUI with digikam window.

Image Editor:

- Image properties sidebar support
- Add DImg support.

PENDING TASK: 

- DImg                : add cache file method to improve loading operations.
- DImg                : add metadata transfert rules between file formats.
- DImg                : add native support of JPEG2000, OpenEXR, and Krita file formats.
- DImg                : add rules to detect camera type use to take a photo and applying automaticly an ICC profil (RAW file formats especially).
- DImg                : add Load/save operation in separed thread to unfreeze GUI.
- Image Editor        : add progress bar during load/save operation (depending of precedent point) 
- Image Editor        : add Events support between IE and main window about comments & tag sidebar 
- Core                : porting all imageplugins to DImg and support 16 bits images (actually only BCG tool is ported).
- Core                : porting all image filters to 16 bits (histogram, curves, color effects, etc.)
- Core                : Saving digiKam comments in PNG & TIFF files like JPEG.
- Core                : Removed imlib2 depency.
- Setup               : add new configuration dialog tab to set ICC profils management.
- DigikamImagePlugins : porting all plugins to DImg and support 16 bits images. All plugins work fine in 8 bits.
- DigikamImagePlugins : add new plugin to apply manually an ICC profil.

All contributors welcome to finalize digiKam 0.9.0...

CCBUGS: 87823, 103176, 109096, 109817, 109992, 113103
CCMAIL: digikam-devel@kde.org

 M  +10 -0     configure.in.bot  
 M  +47 -0     configure.in.in  
 M  +9 -5      digikam.kdevelop  
 M  +25 -25    digikam/Makefile.am  
 M  +12 -44    digikam/albumiconview.cpp  
 M  +23 -26    digikam/albumiconview.h  
 M  +6 -1      digikam/albumsettings.cpp  
 M  +20 -47    digikam/digikamapp.cpp  
 M  +20 -25    digikam/digikamapp.h  
 M  +0 -4      digikam/digikamui.rc  
 M  +97 -54    digikam/digikamview.cpp  
 M  +41 -36    digikam/digikamview.h  
 M  +1 -1      digikam/main.cpp  
 M  +16 -15    imageplugins/Makefile.am  
 M  +2 -2      imageplugins/imageeffect_bcg.cpp  
 M  +21 -24    imageplugins/imageeffect_hsl.cpp  
 M  +1 -1      imageplugins/imageplugin_core.h  
 M  +17 -12    kioslave/Makefile.am  
 M  +1 -1      libs/Makefile.am  
 A             libs/dcraw (directory)  
 A             libs/dcraw/Makefile.am  
 A             libs/dcraw/parse.c   [License: UNKNOWN]
 A             libs/dcraw/parse_old.c   [License: UNKNOWN]
 A             libs/dcraw/rawfiles.h   [License: GPL]
 A             libs/dimg (directory)  
 A             libs/dimg/Makefile.am  
 A             libs/dimg/README  
 A             libs/dimg/colormodifier.cpp   [License: GPL]
 A             libs/dimg/colormodifier.h   [License: GPL]
 A             libs/dimg/dimg.cpp   [License: GPL]
 A             libs/dimg/dimg.h   [License: GPL]
 A             libs/dimg/dimgloader.cpp   [License: GPL]
 A             libs/dimg/dimgloader.h   [License: GPL]
 A             libs/dimg/dimgprivate.h   [License: GPL]
 A             libs/dimg/dimgscale.cpp   [License: GPL]
 A             libs/dimg/iccjpeg.c   [License: no copyright]
 A             libs/dimg/iccjpeg.h   [License: no copyright]
 A             libs/dimg/icctransform.cpp   [License: GPL]
 A             libs/dimg/icctransform.h   [License: GPL]
 A             libs/dimg/jpegloader.cpp   [License: GPL]
 A             libs/dimg/jpegloader.h   [License: GPL]
 A             libs/dimg/pamloader.cpp   [License: GPL]
 A             libs/dimg/pamloader.h   [License: GPL]
 A             libs/dimg/pngloader.cpp   [License: GPL]
 A             libs/dimg/pngloader.h   [License: GPL]
 A             libs/dimg/ppmloader.cpp   [License: GPL]
 A             libs/dimg/ppmloader.h   [License: GPL]
 A             libs/dimg/qimageloader.cpp   [License: GPL]
 A             libs/dimg/qimageloader.h   [License: GPL]
 A             libs/dimg/rawloader.cpp   [License: GPL]
 A             libs/dimg/rawloader.h   [License: GPL]
 A             libs/dimg/tiffloader.cpp   [License: GPL]
 A             libs/dimg/tiffloader.h   [License: GPL]
 A             libs/imageproperties (directory)  
 A             libs/imageproperties/Makefile.am  
 A             libs/imageproperties/imagedescedittab.cpp   [License: GPL]
 A             libs/imageproperties/imagedescedittab.h   [License: GPL]
 A             libs/imageproperties/imagepropertiesexiftab.cpp   [License: GPL]
 A             libs/imageproperties/imagepropertiesexiftab.h   [License: GPL]
 A             libs/imageproperties/imagepropertieshistogramtab.cpp   [License: GPL]
 A             libs/imageproperties/imagepropertieshistogramtab.h   [License: GPL]
 A             libs/imageproperties/imagepropertiessidebar.cpp   [License: GPL]
 A             libs/imageproperties/imagepropertiessidebar.h   [License: GPL]
 A             libs/imageproperties/imagepropertiessidebardb.cpp   [License: GPL]
 A             libs/imageproperties/imagepropertiessidebardb.h   [License: GPL]
 A             libs/imageproperties/navigatebarwidget.cpp   [License: GPL]
 A             libs/imageproperties/navigatebarwidget.h   [License: GPL]
 M  +3 -0      libs/levels/imagelevels.h  
 M  +20 -4     libs/thumbbar/thumbbar.h  
 M  +5 -4      showfoto/main.cpp  
 A             showfoto/mimetypes (directory)  
 A             showfoto/mimetypes/Makefile.am  
 A             showfoto/mimetypes/x-raw.desktop  
 AM            showfoto/pics/hi22-mime-raw.png  
 AM            showfoto/pics/hi32-mime-raw.png  
 AM            showfoto/pics/hi48-mime-raw.png  
 AM            showfoto/pics/hi64-mime-raw.png  
 M  +106 -89   showfoto/showfoto.h  
 M  +2 -1      utilities/imageeditor/Makefile.am  
 A             utilities/imageeditor/canvas (directory)  
 M  +6 -2      utilities/imageeditor/canvas.cpp  
 M  +1 -1      utilities/imageeditor/canvas.h  
 A             utilities/imageeditor/canvas/Makefile.am  
 A             utilities/imageeditor/canvas/canvas.cpp   [License: GPL]
 A             utilities/imageeditor/canvas/canvas.h   [License: GPL]
 A             utilities/imageeditor/canvas/dimginterface.cpp   [License: GPL]
 A             utilities/imageeditor/canvas/dimginterface.h   [License: GPL]
 A             utilities/imageeditor/canvas/imageplugin.cpp   [License: GPL]
 A             utilities/imageeditor/canvas/imageplugin.h   [License: GPL]
 A             utilities/imageeditor/canvas/imagepluginloader.cpp   [License: GPL]
 A             utilities/imageeditor/canvas/imagepluginloader.h   [License: GPL]
 A             utilities/imageeditor/canvas/undoaction.cpp   [License: GPL]
 A             utilities/imageeditor/canvas/undoaction.h   [License: GPL]
 A             utilities/imageeditor/canvas/undocache.cpp   [License: GPL]
 A             utilities/imageeditor/canvas/undocache.h   [License: GPL]
 A             utilities/imageeditor/canvas/undomanager.cpp   [License: GPL]
 A             utilities/imageeditor/canvas/undomanager.h   [License: GPL]
 M  +0 -3      utilities/imageeditor/digikamimagewindowui.rc  
 A             utilities/imageeditor/editor (directory)  
 A             utilities/imageeditor/editor/Makefile.am  
 A             utilities/imageeditor/editor/digikamimageplugin.desktop  
 A             utilities/imageeditor/editor/digikamimagewindowui.rc  
 A             utilities/imageeditor/editor/imageiface.cpp   [License: GPL]
 A             utilities/imageeditor/editor/imageiface.h   [License: GPL]
 A             utilities/imageeditor/editor/imageprint.cpp   [License: GPL]
 A             utilities/imageeditor/editor/imageprint.h   [License: GPL]
 A             utilities/imageeditor/editor/imageresizedlg.cpp   [License: GPL]
 A             utilities/imageeditor/editor/imageresizedlg.h   [License: GPL]
 A             utilities/imageeditor/editor/imagewidget.cpp   [License: GPL]
 A             utilities/imageeditor/editor/imagewidget.h   [License: GPL]
 A             utilities/imageeditor/editor/imagewindow.cpp   [License: GPL]
 A             utilities/imageeditor/editor/imagewindow.h   [License: GPL]
 M  +119 -118  utilities/imageeditor/imagewindow.cpp  
 M  +80 -63    utilities/imageeditor/imagewindow.h  
 M  +115 -33   utilities/imageeditor/imlibinterface.cpp  
 M  +1 -1      utilities/imageeditor/imlibinterface.h  
Comment 6 caulier.gilles 2006-01-04 10:55:03 UTC
16 bits image framework is now fully implemented. I close this wish...

Gilles Caulier
Comment 7 caulier.gilles 2006-11-16 08:45:00 UTC
*** Bug 137278 has been marked as a duplicate of this bug. ***