ImageMagick provides 'convert':
convert -resize 160x120 image.jpg image-thumb.png
Note that this preserves aspect ratio, which may or may not be what you want (I haven't worked out how to stretch an image to a precise size with convert yet, if someone knows then please tell me!).
You could also use Python's Image module (PIL) to do thumbnails from within Pd, however thumbnails from videos are a different issue, I guess.
for video, you could probably use pymedia to produce thumbnails.
http://pymedia.org/
or just use mplayer to render out a frame.
but, just fyi, you will probably want to use imagemagick's convert for resizing images for thumbnails. It has a few options for it's resampling algo, but I find the default one to be better than GD's or PIL. It's also much slower.
below is a python script for converting images. could be easily modified to use mplayer to render out a frame and resize it using convert.
-august.
from glob import glob import os import Image #PIL
def doConvert(w,h, item, folder, force = False ): path = folder + "/" + item # make a folder to hold all the thumbnails if ( os.path.exists(path) ): print item + " exists in folder: " + folder if (force): print "forcing convert for " + folder + "/" + item command = "convert " + item + " -resize " + str(w) + 'x' + str(h) + " " + folder + "/" + item print command os.system( command ) else: command = "convert " + item + " -resize " + str(w) + 'x' + str(h) + " " + folder + "/" + item print command os.system( command )
def doImage(item, force = False): image = Image.open(item) x,y = image.size msize =648.0 #864 ssize =162.0 #216
mw,mh=10,10
sw,sh=10,10
if (x > y):
sratio = x/ssize
else :
sratio = y/ssize
sw = int( x/sratio )
sh = int( y/sratio )
doConvert(sw,sh,item, "thumbnails", force)
def getList(): return glob("*.jpg") + glob("*.JPG")
# go throught the current directory looking for jpegs and make thumnails for item in jpglist: doImage(item, force)