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