#!/usr/bin/python2.2
#
# (C) 2003 Víctor R. Ruiz <rvr@infoastro@com>
# reducir.py - Reduce una imagen a x píxeles de ancho
#
import Image
import sys
def reducir(imagen, nuevaImagen, nuevoAncho):
""" Reduce de tamaño una imagen.
imagen: Fichero de la imagen (ej. "foto.jpg")
nuevaImagen: Nombre de fichero de la nueva imagen (ej. "foto.jpg")
nuevoAncho: Nuevo ancho de la imagen, en píxeles (ej. 438)
"""
# Abre la imagen
img = Image.open(imagen)
if (img == None):
print "reducir.py\n\tNo se pudo abrir la imagen\n\n"
return
# Calcula el nuevo ancho de la imagen
ancho = img.size[0]
alto = img.size[1]
nuevoAlto = int(round((nuevoAncho + 0.0) / ancho * alto))
# Genera la nueva imagen con el nuevo tamaño
nImg = img.resize((nuevoAncho, nuevoAlto))
# Guarda la imagen
nImg.save(nuevaImagen)
if __name__ == "__main__":
if (sys.argv[1] == None or sys.argv[2] == None or sys.argv[3] == None):
print "reducir.py <imagen> <nueva imagen> <nuevo ancho>\n\n"
else:
reducir(sys.argv[1], sys.argv[2], int(sys.argv[3]))