Skip to content
  • Nate Graham's avatar
    Allow the user to select the JPEG save/compression quality · 24cd548e
    Nate Graham authored
    Summary:
    Currently, anytime Gwenview is used to save a non-JPEG file as a JPEG, or anytime JPEG file is saved or re-saved after performing a lossy edit (e.g. crop or red eye, but not rotation), the new file is saved with 75% quality level, resulting in a noticeable degradation in appearance.
    
    This patch implements a user-selectable JPEG save/compression quality setting, which can be temporarily overridden in the {nav Save As} dialog when saving a file as a JPEG. The new default quality level is 90% -- same as Spectacle. This should prevent people from accdientally destroying their JPEGs.
    
    As before, when saving an existing JPEG file with a new name or after performing a non-lossy edit (e.g. rotation, which only changes the EXIF rotation tag), the appearance of the file is not changed because no actual image manipulation is done.
    
    FEATURE: 277996
    FIXED-IN: 19.12.0
    
    Test Plan:
    {F7205336}
    
    {F7208763}
    
    Set JPEG quality to 5% in the config file and test the following use cases:
    - Non-JPEG image: do {nav Save} or {nav Save As} in non-JPEG formats -> No changes or regressions.
    - JPEG image: do {nav Save} or {nav Save As} without changing the image format or the image's pixels at all -> No changes; quality level not taken into consideration because these are lossless operations that do not re-compress the image (which is good)
    - JPEG image: do {nav Save} or {nav Save As} after changing the image's pixels in some way (e.g. a crop operation) -> Image is saved with the user-specified 5% quality level and looks terrible
    - JPEG image: do {nav Save As} into a non-JPEG file format after changing the image image's pixels in some way, or not -> No changes or regressions (in particular, lossless images like PNG are not hugely ballooned in file size)
    
    Set JPEG quality to 90% in the config file and test the following use cases:
    - Non-JPEG image: do {nav Save As} in non-JPEG formats -> No changes or regressions; dialog box does not show quality spinbox
    - Non-JPEG image: do {nav Save As} into a JPEG and in the {nav Save As] dialog, change the quality from 90% to 5%-> Image is saved with the user-specified 5% quality level and looks terrible
    - JPEG image: do {nav Save As} into a non-JPEG file format -> No changes or regressions; dialog box does not show quality spinbox
    - JPEG image: do {nav Save As} after changing the image's pixels in some way (e.g. a crop operation), and in the {nav Save As] dialog, change the quality from 90% to 5%-> Image is saved with the user-specified 5% quality level and looks terrible
    
    Reviewers: #gwenview, #vdg
    
    Subscribers: filipf, pino
    
    Tags: #gwenview
    
    Differential Revision: https://phabricator.kde.org/D23106
    24cd548e