| Summary: | digikam editor saves some jpeg's 30% smaller than original - even with jpeg compression option set at 100 | ||
|---|---|---|---|
| Product: | [Applications] digikam | Reporter: | J. Westveer <jwest> |
| Component: | Plugin-DImg-JPEG | Assignee: | Digikam Developers <digikam-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | 0.9.0 | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | 0.9.0 | |
| Sentry Crash Report: | |||
|
Description
J. Westveer
2006-07-14 04:54:23 UTC
The digiKam JPEG interface is here : http://websvn.kde.org/trunk/extragear/graphics/digikam/libs/dimg/loaders/jpegloader.cpp?rev=557529&view=auto Note: i'm using always JPEG compression ratio to 100 here, and i can't reproduce this problem. Gilles Caulier Sorry, I still think something is wrong. I am new to hacking Digikam, and I have been poke-ing around the digikam/libs/dimg/loaders/jpegloader.cpp file, trying to figure out how it works. If I take line : jpeg_set_quality(&cinfo, quality, true); and change it to : jpeg_set_quality(&cinfo, 100, true); I get two different size output images when using the same file. I am still trying to figure out how quality is set from the slider ;-/ Thanks for the responce. jjw SVN commit 562793 by cgilles:
digikam from trunk : add libJPEG quality compression value debug message.
CCBUGS: 130798
M +2 -0 jpegloader.cpp
--- trunk/extragear/graphics/digikam/libs/dimg/loaders/jpegloader.cpp #562792:562793
@@ -484,6 +484,8 @@
jpeg_set_quality(&cinfo, quality, true);
jpeg_start_compress(&cinfo, true);
+ kdDebug() << "Using LibJPEG quality compression value: " << quality << endl;
+
if (observer)
observer->progressInfo(m_image, 0.1);
The slider -> libjpeg quality conversion rule is explained to editorwindow.cpp::line 726 : http://websvn.kde.org/trunk/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindow.cpp?rev=561766&view=auto Gilles Caulier Right, there is a small approximate error to compute libjpeg quality value using slider setting. In fact, when slider = 100, libjpeg quality = 99 ! Gilles Caulier Humm, If the slider returns a value from 0-100, and libjpeg only accepts 25-100, would it not be simpler to just get the sliders value, and if less than 25, just set quality to 25. I love the integer logic though. It made my brain hurt, and I had to go take a nap....... Ciao, Jim Westveer jwest@debian.org ------------------------------------------------------------ I wish there was a button on my computer for intelligence. There's a button called `brightness', but it doesn't work. ------------------------------------------------------------ SVN commit 562897 by cgilles:
digiKam from trunk: fix libjpeg quality value used to save a new file if setup jpeg compression ratio is 100.
BUG: 130798
M +5 -2 NEWS
M +0 -2 TODO
M +2 -2 utilities/imageeditor/editor/editorwindow.cpp
--- trunk/extragear/graphics/digikam/NEWS #562896:562897
@@ -131,7 +131,8 @@
068 ==> 121367 : Add properties tab to digiKam and (especially) Image Editor.
069 ==> 125926 : Directories with a '#' in their name are not properly detected when created outside digikam.
070 ==> 125733 : Enabling 'Always apply ICM profiles' can lead to suprising results.
-071 ==> 126326 : camera download: auto-rotated images loose EXIF info when 'No EXIF information found.' is written to console.
+071 ==> 126326 : camera download: auto-rotated images loose EXIF info when 'No EXIF information found.'
+ is written to console.
072 ==> 121242 : mimelnk/x-image-raw.desktop conflicts with kdegraphics-3.5.x.
073 ==> 127374 : unsharp mask: max. radius way too small.
074 ==> 116485 : Mimimize button missing on "Compaq Flash Reader" camera window.
@@ -167,6 +168,8 @@
104 ==> 130381 : Automatic colorbalance and camera color balance checkboxes swapped.
105 ==> 117248 : Opening default app when camera inserted return KIOExec error.
106 ==> 130883 : Overexposure indicator in color management is saved as part of the picture
-107 ==>
+107 ==> 130798 : Editor saves some jpeg's 30% smaller than original,
+ even with jpeg compression option set at 100.
+108 ==>
----------------------------------------------------------------------------------------------------
--- trunk/extragear/graphics/digikam/TODO #562896:562897
@@ -34,8 +34,6 @@
==> 111446 : Image Editor : bad behaviour when out of disk space
==> 128104 : Image Editor : digiKam Crash when browsing photos in Image Editor
==> 130525 : Image Editor : Saving large (>5M) jpg's result in corrupt file
-==> 130798 : Image Editor : Editor saves some jpeg's 30% smaller than original,
- even with jpeg compression option set at 100.
==> 127583 : Main interface : keywords, copyright, photographer info not saved to IPTC
==> 127179 : Main interface : thumbnails does not adhere to the Rotate Images setting in Configure digiKam
--- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/editorwindow.cpp #562896:562897
@@ -724,8 +724,8 @@
config->setGroup("ImageViewer Settings");
// JPEG quality slider settings : 0 - 100 ==> libjpeg settings : 25 - 100.
- m_IOFileSettings->JPEGCompression = (int)((75.0/99.0)*(float)config->readNumEntry("JPEGCompression", 75)
- + 25.0 - (75.0/99.0));
+ m_IOFileSettings->JPEGCompression = (int)((75.0/100.0)*(float)config->readNumEntry("JPEGCompression", 75)
+ + 26.0 - (75.0/100.0));
// PNG compression slider settings : 1 - 9 ==> libpng settings : 100 - 1.
m_IOFileSettings->PNGCompression = (int)(((1.0-100.0)/8.0)*(float)config->readNumEntry("PNGCompression", 1)
|