ANN: ThumbnailCtrl For wxPython ;-)

Hello NG,

I have to agree with Alex, the ThumbnailCtrl seems to be developing a
serious case of featuritis. All the options are useful, no doubt about
that - but its getting crowded.
At least that's what it looks like to me.
I think that ThumbnailCtrl has reached a turning point from a quick
hack (in the positive sense) to either a lean, useful module or a
bloated piece of code that tries to do everything.

I am somehow sorry that someone of you find ThumbnailCtrl a "bloated"
thing. The basic idea Peter and I started with was to develop a thumbnail
viewer. You have certain features that may be switched off if you don't
like them (and basically, most of the features are "off" by default). While
new improvements and new suggestions from this kind NG are implemented, you
are not forced to use them if you don't like them. Not using these features
does not add any overhead to your scripts, because those functionalities
are never called.
Probably my mastering of english is too limited to perfectly understand
what "bloated" means...

Sorry for the rant.

Andrea.

···

_______________________________________________
Andrea Gavana
Reservoir Engineer
MOGI ? Reservoir Characterization and Modeling Dept.
ENI S.p.A. ? Exploration & Production Division
Via Emilia, 1 ? 20097 San Donato Milanese (MI) ? Italy
Phone: +39 02 520 62972
Fax: +39 02 520 61824
E-mail: andrea.gavana@agip.it
Restyled Internet Site: http://xoomer.virgilio.it/infinity77/
____________________________________________________

Eni S.p.A.
Sede legale in Roma,
Piazzale Enrico Mattei 1, 00144 Roma
Tel. centralino: +39 06598.21
www.eni.it
Capitale sociale € 4.002.934.326 i.v.
Registro Imprese di Roma,
Codice Fiscale 00484960588
Part. IVA 00905811006
R.E.A. Roma n. 756453

Really? :wink:

I have already written down a (short) list of feature requests. :wink:
As I already mentioned.

There exists Cornice from Alberto Griggio written
in wxPython and using "his" wxGlade, which I like very much.
Last version is 0.6.1, I think.

Maybe this could be a base/or helpful template for developing
a newer/better/more functions including picture viewer.

···

On Wed, 14 Dec 2005 09:53:12 +0100, andrea.gavana@agip.it wrote:

The basic idea Peter and I started with was to develop a thumbnail
viewer.

--
Franz Steinhaeusler

wrote:
Actually, that’s not agreeing with me. I didn’t say (and don’t believe)
that it is developing a case of featuritis. I said:
Note “… might be …” - future tense.
I don’t believe it is currently bloated at all, nowhere near it. I
think you could probably add many features before it could become
bloated - and most likely it never will, but I do think that it is a
potential future problem for this particular widget. My comment was
originally intended mostly as a throw-away line commenting on how many
useful features ThumbnailCtrl has. I see adding features (and the desirability to consider each one
carefully before adding it) as more of an issue for this widget than
for most others because most widgets feel to me like “small tools” for
making apps - whereas this is so powerful I could imagine an app built
from 90% this widget and 10% the rest of the app.
In any case, I’m sorry if what I said led others to think I was
accusing this of bloat. And I’m sad that what was intended to be praise
for the widget has seemed like accusation; I’m very sorry about that,
Andrea.

···

andrea.gavana@agip.it

Hello NG,
I have to agree with Alex, the ThumbnailCtrl seems to be developing a
serious case of featuritis.

The hardest thing for you [Andrea] might be
trying to avoid adding features
until it becomes a full-fledged photo viewer …

All the options are useful, no doubt about
that - but its getting crowded.
At least that's what it looks like to me.
I think that ThumbnailCtrl has reached a turning point from a quick
hack (in the positive sense) to either a lean, useful module or a
bloated piece of code that tries to do everything.
I am somehow sorry that someone of you find ThumbnailCtrl a "bloated"
thing. The basic idea Peter and I started with was to develop a thumbnail
viewer. You have certain features that may be switched off if you don't
like them (and basically, most of the features are "off" by default). While
new improvements and new suggestions from this kind NG are implemented, you
are not forced to use them if you don't like them. Not using these features
does not add any overhead to your scripts, because those functionalities
are never called.
Probably my mastering of english is too limited to perfectly understand
what "bloated" means...
-- Alex Tweedly

http://www.tweedly.net

Well I would advise against using Cornice! don't get me wrong, I think is great and all BUT there are some issues:

1. Cornice is GPL. This is bad, I need a ThumbnailCtrl for a project I have BUT I need my project to remain Close Source. I'm more than willing to contribute to a common, LGPL compatible component because I can use it.
2. The Thumbnail control in Cornice and the one Andrea created do not meet my standard of "current" controls from an anesthetically point of view. Why create something that look that "old" from the start? We should push for more eye candy, even if this might mean a little bit less performance. What would you rather have? Something that looks like Cornice or something that looks like Picasa? The highlighting that Andrea put in his control is a very nice touch but... not enough, we need ,more bling bling! :o)

One more thing on Andrea's control... the ComboBox does not belong in the Thumbnail control! It should be in a decorator panel that could also contain something like a toolbar with buttons for zoom and rotate. The Thumbnail control should provide the functionality (like holding a list of recent directories) but the actual widget controlling this functionality should be outside the control.

My 2c

Peter

···

On Wed, 14 Dec 2005 11:36:17 +0200, Franz Steinhaeusler <franz.steinhaeusler@gmx.at> wrote:

On Wed, 14 Dec 2005 09:53:12 +0100, andrea.gavana@agip.it wrote:

The basic idea Peter and I started with was to develop a thumbnail
viewer.

Really? :wink:

I have already written down a (short) list of feature requests. :wink:
As I already mentioned.

There exists Cornice from Alberto Griggio written
in wxPython and using "his" wxGlade, which I like very much.
Last version is 0.6.1, I think.

Maybe this could be a base/or helpful template for developing
a newer/better/more functions including picture viewer.

Andrea,

Thanks for the ThumbnailCtrl widget. Its a useful tool.

One feature that could probably be added to the widget is selection of thumbnails using a rubber-banding technique. Like the one in Microsoft Image Viewer. This helps in selecting multiple thumbnails using only a mouse, which is good from a Usability point of view (I think). Thanks.

And thanks once again for the widget. I can already see applications where I could use them. :slight_smile:

Satchit

···

----
Satchidanand Haridas (sharidas at zeomega dot com)

ZeOmega (www.zeomega.com)
Open Minds' Open Solutions

I only meant to take a look at Cornice, how some things are
solved; and not so much the underlying source.
The options dialog is also interesting.

···

On Wed, 14 Dec 2005 12:25:00 +0200, "Peter Damoc" <peter@sigmacore.net> wrote:

Well I would advise against using Cornice! don't get me wrong, I think is
great and all BUT there are some issues:

1. Cornice is GPL. This is bad, I need a ThumbnailCtrl for a project I
have BUT I need my project to remain Close Source. I'm more than willing
to contribute to a common, LGPL compatible component because I can use it.

--
Franz Steinhaeusler

I'm the one that has to apologize, Andrea.

"bloated" has been the wrong word to use.
I tried to say that it might become too big to be maintainable in the
future if you add too much features.
AFAIK, once something is there, its difficult to remove later - there
will always be someone relying on _that_ feature who cannot live
without it.

I have found that testing of code gets more difficult if there are
more "do-it-this-way-or-do it-that-way" decisions in the code. Testing
all combinations gets nearly impossible after more than a few options.
Not testing ... we all know where that ends. ;-(

At the moment, ThumbnailCtrl seems to be on its way to become a very
useful addition to wxPython.

Harald Stürzebecher

···

2005/12/14, andrea.gavana@agip.it <andrea.gavana@agip.it>:

Hello NG,

>I have to agree with Alex, the ThumbnailCtrl seems to be developing a
>serious case of featuritis. All the options are useful, no doubt about
>that - but its getting crowded.

I am somehow sorry that someone of you find ThumbnailCtrl a "bloated"
thing. The basic idea Peter and I started with was to develop a thumbnail
viewer. You have certain features that may be switched off if you don't
like them (and basically, most of the features are "off" by default).

Sorry for the rant.

Hi Andrea,

If I try to open a directory containing TIFF images using Group4 decoder, I get the following error (traceback):

Traceback (most recent call last):
  File "...\ThumbnailCtrl.py", line 934, in EventGen1
    self.LoadImages(filenames[count], count)
  File "...\ThumbnailCtrl.py", line 964, in LoadImages
    pil.thumbnail((300, 240))
  File "C:\Python23\Lib\site-packages\PIL\Image.py", line 1264, in thumbnail
    self.load()
  File "C:\Python23\Lib\site-packages\PIL\ImageFile.py", line 165, in load
    d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
  File "C:\Python23\Lib\site-packages\PIL\Image.py", line 309, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder group4 not available

This (I believe) occurs because PIL in its default configuration doesn't directly support Group4 decoder. In another application I was working with, I was able to get past this problem by using wxImage (which supports Group4 decoder) to open the file and then convert it into a PIL image. The rest of the code then works as is. An example of a patch I used in your code is

<snip>
        try:
            pil.thumbnail((300, 240))
        ## In case the TIFF Image uses Group4 Decoder except IOError:
            wx_img = wx.Image(newfile, wx.BITMAP_TYPE_TIF)
            pil = imageToPil(wx_img)
            pil.thumbnail((300, 240))
</snip>

If there is another way to add support for Group4 decoded TIFF images, I would appreciate if you could let me know. Thanks.

Satchit

···

----
Satchidanand Haridas (sharidas at zeomega dot com)

ZeOmega (www.zeomega.com)
Open Minds' Open Solutions