Re: Annoying behavior of shared settings for file save plug-ins

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 30 Aug 2007 00:57:44 +0200, gg@xxxxxxxxxxx wrote:> Gimp should not decide what is "better" because it cannot know what is  > required so cannot make that choice.> > This sort of "surprise" behaviour is precisely the kind of thing I was  > warning against in making covert changes to user data.
I think that you are trying to shoot the wrong target.  The mainproblem that I described in my previous message is not the fact thatGIMP tries to preserve the quality of the original image or decidewhat is "better".  The problem is that some changes that you make whensaving one file are propagated to all other files that you save later.The recent updates to the JPEG plug-in make this problem more obvious,but it also affects all other file plug-ins.
Before jumping to conclusions about where the problem comes from, pleasetry the following exercise:- Load or create a GIF animation (2-3 layers should be enough).- Save it as A.gif and let's pretend that you don't like the speed at  which that animation runs so you set the delay to 333ms and check  the box "Use delay entered above for all frames".- Close that image.- Open or create a new, totally unrelated GIF animation.- Save that image as B.gif.  Although you probably wanted to keep its  settings or at least save it with the default values, you see that  "Use delay entered above for all frames" is now checked.  The  settings from an unrelated image that is now closed are used for  saving your new image.  If you do not want to destroy the timing of  your animation, you have to pay attention and uncheck that box  before you save the file.
Does it make sense that two unrelated images influence each other?
But things are even more confusing if you keep some images open.  Trythe following exercise, with PNG this time:- Load or create a new image.- Save it as A.png but set its compression level to 0 because you want  to waste some disk space and disable all other options because you  do not want to save the image comment, creation date, etc.- Keep A.png open and load or create another image.- Save the second image as B.png.  Although you probably wanted to use  your default settings (which can be customized with the buttons  "Load/Save defaults"), you see that the same parameters as A.png are  now used when saving this image.  You do not like this, so you set  the compression level back to 9 (you can also check or uncheck some  of the other boxes) and save the image.- With both A.png and B.png still open, load or create a third image.- Save that image as C.png.  Now you see that C.png inherited the  settings from B.png, the last image that was saved.- Make some small changes to A.png and save it again using a new name  such as D.png.  By now, maybe you expect that saving D.png would use  the same settings as C.png, the last image that was saved?  But no,  this time you see that D.png keeps the settigns from A.png because  it was still open.- Now if you make some changes to B.png and give it a new name E.png,  then that file will use the settings from B.png.  But if you had  closed and re-opened B.png, then you would see that E.png is saved  with the parameters from D.png, not B.png.  Are you confused yet?
If you work on two files in parallel (A.png and B.png) and save themalternatively as your work progresses, then any new file that you openand save will inherit the settings from A.png or B.png, depending onwhich one was saved last.
And if you are still convinced that all of this makes sense, try toplay with some settings that are enabled or disabled depending on thecontents of the original image.  For example, if the original PNGimage has transparency (alpha channel), then you will be able to checkor uncheck the box "Save color values from transparent pixels".  Thissetting may be propagated to other PNG images that also have an alphachannel.  But if you load a PNG image without alpha channel, then thisoption will not be available.  After saving that last file, can youcorrectly guess if that box will be automatically checked or not whenyou load another PNG image with transparency and then try to save it?
I consider the current situation to be broken for all file plug-ins.Instead of re-using the settings from whatever image was savedrecently, each image should keep its own settings and should not beinfluenced by what you do with the other images.  The save settingsshould come from the original image or from the user defaults if theimage has never been saved yet.  It should of course be possible forthe user to customize these defaults (currently, this can only be donefor JPEG and PNG, but the old bug #63610 is about extending this toother plug-ins).
I hope that you are convinced that something is wrong with thebehavior of the file plug-ins.
Now, regarding the JPEG plug-in, I see two ways forward:
1) Do not re-use the values from previous (unrelated) invocations of   the plug-in.  This ensures that each file keeps its own settings,   as described above.  The same fix can also be applied to the PNG   plug-in because it uses similar parasites for saving image settings   and it also has the "Load/Save defaults" buttons.  But other   plug-ins will still have the wrong behavior because it is too late   to fix all of them before 2.4.
2) Instead of trying to fix the plug-ins for 2.4, make sure that they   are all broken in the same way.  This would mean that the JPEG   plug-in in 2.4 will not try to use the quality settings from the   original image even if they are better than the defaults.  We would   go back to the previous behavior and postpone the real fix   explained above until the next development cycle.  Those who   complained that GIMP was "destroying" their images by saving them   at a lower quality than expected will just have to wait for 2.6.
I don't care about which way we go.  Both of them have good and badsides and both of them will leave some users frustrated or confused.
-Raphaël_______________________________________________Gimp-developer mailing listGimp-developer@xxxxxxxxxxxxxxxxxxxxxxxxxxx://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer

[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux