Simple script to make .png thumbnails from .zip archive...

2006-06-18 Thread K P S
Hi.
  I'm looking for a small script that will take a .zip archive and pull
the first .jpg from the archive and convert it to a .png.

The reason for this is I want to have tuhmbnails for these archives in
nautilus under gnome.  I would like something similar to the following
code, which will pull a thumbnail from an openoffice.org (oasis)
document.  What I want is a little more involved, I guess, since I
don't know the name of the file (for the zip.read command), and I need
to convert the file from .jpg to .png once I get it.  Any help would be
appreciated.  Including a pointer to a web page of a manual with
examples. :-)

#!/usr/bin/python

import zipfile
import sys
import gnomevfs

inURL=gnomevfs.get_local_path_from_uri(sys.argv[1])
outURL=sys.argv[2]

zip=zipfile.ZipFile(inURL,mode="r")
picture=zip.read("Thumbnails/thumbnail.png")
thumbnail=open(outURL,"w")
thumbnail.write(picture)
thumbnail.write("/n")
zip.close()
thumbnail.close()

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Simple script to make .png thumbnails from .zip archive...

2006-06-19 Thread K P S
Thanks a lot.
  I'm really new to python, and haven't coded in over a decade, so
please be patient. :-)

I'm able to read a .jpg from a .zip archive, but can't seem to
manipulate it.  If I do this:

zip=zipfile.ZipFile(inURL,mode="r")
picture=zip.read("00.jpg")

I get the image, but it is of "type" ZipFile.  How can I change it to
type Image?  Or am I thinking about this in the wrong way?  I would
like to follow this with something like:

picture.thumbnail((128, 128), Image.ANTIALIAS)

But obviously I can't do this directly.  What am I missing?

hdante wrote:
> Hi,
>
>  I don't know zipfile by heart, but python official documentation is
> always good ( docs.python.org ). You need a loop in the file list like
> this:
>
>   for file in zip:
> process(file)
>
>  Unfortunatelly, there are too many ways to create a thumbnail from an
> image. I'll cite one, using the "python image" external module, that
> I've found to be very easy:
>
> import Image
> def process(file):
>   try:
> image = Image.open(file)
> image.thumbnail ((128,128), Image.ANTIALIAS)
> image.save (file + '.thumb.png')
>   except:
> print 'Skipping file', file
>
>  Links:
>  http://docs.python.org/lib/lib.html - Python Library Reference
>  http://www.pythonware.com/library/pil/handbook/image.htm - The Image
> Module
>
> K P S wrote:
> > Hi.
> >   I'm looking for a small script that will take a .zip archive and pull
> > the first .jpg from the archive and convert it to a .png.
> >
> > The reason for this is I want to have tuhmbnails for these archives in
> > nautilus under gnome.  I would like something similar to the following
> > code, which will pull a thumbnail from an openoffice.org (oasis)
> > document.  What I want is a little more involved, I guess, since I
> > don't know the name of the file (for the zip.read command), and I need
> > to convert the file from .jpg to .png once I get it.  Any help would be
> > appreciated.  Including a pointer to a web page of a manual with
> > examples. :-)
> >
> > #!/usr/bin/python
> >
> > import zipfile
> > import sys
> > import gnomevfs
> >
> > inURL=gnomevfs.get_local_path_from_uri(sys.argv[1])
> > outURL=sys.argv[2]
> >
> > zip=zipfile.ZipFile(inURL,mode="r")
> > picture=zip.read("Thumbnails/thumbnail.png")
> > thumbnail=open(outURL,"w")
> > thumbnail.write(picture)
> > thumbnail.write("/n")
> > zip.close()
> > thumbnail.close()

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Simple script to make .png thumbnails from .zip archive...

2006-06-19 Thread K P S
Thanks everyone.

One last thing (I hope).

How can I get the name of just the first file in a zipfile?  I see
routines to list all the files in a zip archive, but I don't see any to
list only the first, or only the second, etc.  It doesn't look like
zipfile is storing info in a useful array that I can hash into.  Or is
it?

Actually, I would like to get the name of the first file with a .jpg
extension, if that's not asking too much. :-)

zip=zipfile.ZipFile("text.zip",mode="r")
picture=zip.read(zip.namelist(0))

This doesn't seem to work. :-(

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Simple script to make .png thumbnails from .zip archive...

2006-06-20 Thread K P S
Thanks a lot!  This is what I ended up with.
(I would like to get rar archive support, but browsing the web it looks
like rar support isn't in any python library (yet)) :-(  Anyway, I was
able to use the below code unchanged to create thumbnails in nautilus
based on the first .jpg file in a .zip archive.

Is there any rar support module in python?

Thanks again.


#!/usr/bin/python

import zipfile
import sys
import gnomevfs
import Image
import StringIO

inURL=gnomevfs.get_local_path_from_uri(sys.argv[1])
outURL=sys.argv[2]

zip=zipfile.ZipFile(inURL,mode="r")
jpeglist=[x for x in zip.namelist() if '.jp' in x]
try:
  picture=zip.read(jpeglist[0])
except IndexError:
  print 'No jpeg found'

zip.close() #close the file, since we no longer have need of it
image = Image.open(StringIO.StringIO(picture)) # create image object
from file-like object
image.thumbnail((128,128),Image.ANTIALIAS) #create the thumbnail
image.save (outURL, "PNG") #output the file in the proper format

-- 
http://mail.python.org/mailman/listinfo/python-list