thanks Gregor, Thank you so much for your time. As I wrote earlier, I temporarily managed the problem by using ImageMagick display.
regards suresh On Sat, Jan 9, 2010 at 3:44 AM, Gregor Kopka <gre...@kopka.net> wrote: > Hello Suresh, > > under windows image.show() blocks until the external viewer terminates > (this is true at least with default installed viewer that comes with XP), > after that the temporary file created by PIL will be unlinked. > > I have no clue if this is true with gnome under Linux, but in case the call > to open the external viewer returns immediately (before the viewer has > loaded the image) you would see strange things happen since image.show() > cleans up the temp file when the python script ends, so you likely run into > a race condition: the temp file (created by im35x.show()) gets unlinked > before the viewer had time to access it. > > Always remember: In case you use code whith cleanup functionality (eg. > removing temp files on shutdown like image.show() does) keep your code > running long enough so the external programs you launched have a chance to > access the files you want to hand over to them! > > My best guess would be that > > import time > time.sleep(10) > > fixes your issue. > > Some things i suggest to change in the workaround code from Jermoes: don't > hardcode the filename and the location of the temp directory! > > path = "/home/adys/.cache/%s.png" % "tmpVfBc3s" > > will probably lead to problems down the road: eg. run two instances of the > code in parallel and they'll fight over the temp file, switch to a viewer > with a wrapper which immediately returns and you'll potentially overwrite > the file again in case you open two viewers in quick succession, transfer > the code to a different system where the hardcoded path dosn't exist and the > save will fail, (etc.) > > Better use: > > def show(self): > import os, tempfile > path = os.path.join (tempfile.gettempdir(), "%s_%s.png" % (os.getpid(), > id(self)) > self.save(path) > os.popen("eog %s" % path) > > to avoid the potential problems with hardcoded filenames. > > Still two things to keep in mind with this: > - don't forget that with this introduces a dependency on eye of gnome > - don't forget to clean out the directory supplied by tempfile.gettempdir() > from time to time to keep the disk from filling up > > I hope this helps to shed some light on the subject. > > Regards, > > Gregor > > Suresh Kumar schrieb: > > Thanks. Just now i modified all my show methods to > im.show(command="display") and installed ImageMagick package. That > temporarily solved my problem. Ok your solution is better anyway. > > suresh > > > On Fri, Jan 8, 2010 at 1:15 PM, Jerome Leclanche <adys...@gmail.com> > <adys...@gmail.com> wrote: > > > You can write a custom show method to your plugins: > def show(self): > path = "/home/adys/.cache/%s.png" % "tmpVfBc3s" > self.save(path) > import os > os.popen("eog %s" % path) > J. Leclanche / Adys > > > On Fri, Jan 8, 2010 at 11:08 PM, Suresh Kumar <suresh.amritap...@gmail.com> > <suresh.amritap...@gmail.com> > wrote: > > > Hi > > Thanks. Though not mentioned in the PIL 1.1.6 documentation, I see > from (sys.path)/PIL/Image.py that it can be done. But I have just one > more qn. Is it possible to modify _showxv() without altering the > original code of PIL ? > > suresh > > On Fri, Jan 8, 2010 at 1:00 PM, Jerome Leclanche <adys...@gmail.com> > <adys...@gmail.com> > wrote: > > > In recent versions of PIL you can do img.show(command="display %s") or > something similar (maybe without %s). Otherwise, edit _showxv in > (sys.path)/PIL/Image.py > J. Leclanche / Adys > > > On Fri, Jan 8, 2010 at 10:49 PM, Suresh Kumar<suresh.amritap...@gmail.com> > <suresh.amritap...@gmail.com> > wrote: > > > Hi, > > How do you do that? Can you elaborate a bit further? > > suresh > > > On Fri, Jan 8, 2010 at 12:39 PM, Jerome Leclanche <adys...@gmail.com> > <adys...@gmail.com> > wrote: > > > I'm pretty sure it's a bug in Eye of Gnome. Have you tried hardcoding > another program in PIL/Image.py ? (_showxv, iirc) > J. Leclanche / Adys > > > On Fri, Jan 8, 2010 at 10:18 PM, Suresh Kumar<suresh.amritap...@gmail.com> > <suresh.amritap...@gmail.com> > wrote: > > > Hi > > Thanks for the reply. > > With one file, it is working correctly. Now I get the following > error > messages which are different from earlier "file not found ones". > > (eog:8368): Gtk-CRITICAL **: gtk_tree_model_get_iter: assertion > `path->depth > 0' failed > > (eog:8368): Gtk-CRITICAL **: gtk_list_store_get_value: assertion > `VALID_ITER (iter, list_store)' failed > > (eog:8368): GLib-GObject-WARNING **: > /build/buildd/glib2.0-2.20.1/gobject/gtype.c:3940: type id `0' is > invalid > > (eog:8368): GLib-GObject-WARNING **: can't peek value table for type > `<invalid>' which is not currently referenced > Segmentation fault > > So any suggestions? > my code: > > > > ----------------------------------------------------------------------------------------- > #!/usr/bin/python > print "Aum Amriteshwaryai Namaha" > > import Image > > imagePath = "/home/suresh/EE241/book_images_3ed/ch03/" > > im34 = Image.open(imagePath + "breast_digital_Xray.tif") > im35 = Image.open(imagePath + "DFT_no_log.tif") > im35.show() > > def neg(x): > return 255-1-x > > import math > > def logtr(x): > y = math.log(1+x,10) > print y > return y*100 > > im34x = im34.point(neg) > im34x.show() > > im35x = im35.point(logtr) > im35x.show() > > ----------------------------------------------end of > code-------------------------------- > suresh > > > On Fri, Jan 8, 2010 at 5:29 AM, Bram Mertens<mertensb.ma...@gmail.com> > <mertensb.ma...@gmail.com> > wrote: > > > On Fri, Jan 8, 2010 at 1:14 AM, > suresh.amritapuri<suresh.amritap...@gmail.com> <suresh.amritap...@gmail.com> > wrote: > > > Hi > > I am using PIL for image processing in ubuntu 9.04. When i give > two > im.show() commands for two different images, the second image is > not > displayed (eye of gnome is the display program). It says no such > file > or directory. Any ideas? > > > Have you verified that the path to the second image is correct and > that the image is readable by your script? > > e.g. try reversing the order of the images to identify whether or > not > it is the image that can not be found or eog. > > Another approach might be to check the file using the os module or > something similar. > > Regards > > Bram > > > > -- > R Suresh Kumar, > Phd Student, Vislab > EE, Univ. of California > Riverside, CA 92507 > -- > Even after all this time The sun never says to the earth, "You owe > Me." > Look what happens with A love like that, It lights the Whole Sky. > - Hafiz e Shirazi > _______________________________________________ > Image-SIG maillist - > image-...@python.orghttp://mail.python.org/mailman/listinfo/image-sig > > -- > R Suresh Kumar, > Phd Student, Vislab > EE, Univ. of California > Riverside, CA 92507 > -- > Even after all this time The sun never says to the earth, "You owe Me." > Look what happens with A love like that, It lights the Whole Sky. > - Hafiz e Shirazi > > > -- > R Suresh Kumar, > Phd Student, Vislab > EE, Univ. of California > Riverside, CA 92507 > -- > Even after all this time The sun never says to the earth, "You owe Me." > Look what happens with A love like that, It lights the Whole Sky. > - Hafiz e Shirazi > > > > _______________________________________________ > Image-SIG maillist - Image-SIG@python.org > http://mail.python.org/mailman/listinfo/image-sig > > -- R Suresh Kumar, Phd Student, Vislab EE, Univ. of California Riverside, CA 92507 -- Even after all this time The sun never says to the earth, "You owe Me." Look what happens with A love like that, It lights the Whole Sky. - Hafiz e Shirazi
_______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig