2010-07-30 11 views
5

Escribo una aplicación simple en Python que muestra imágenes. Necesito implementar Acercar y Alejar escalando la imagen.
creo que el Image.transform método será capaz de hacer esto, pero no estoy seguro de cómo usarlo, ya que está pidiendo una matriz deafín o algo así: P
Aquí está la cita de los documentos:
Zooming con la biblioteca de imágenes de Python

im.transform (tamaño, aFFINE, datos, filtro) => imagen

aplica una transformación afín a la imagen, y coloca el resultado en una nueva imagen con el tamaño dado.

Los datos son un 6-tupla (a, b, c, d, e, f) que contienen las dos primeras filas de una matriz de transformación afín. Para cada píxel (x, y) en la imagen de salida, el nuevo valor se toma de una posición (a x + b y + c, d x + e y + f) en la imagen de entrada, redondeada al píxel más cercano.

Esta función se puede utilizar para escalar, traducir, rotar y cortar la imagen original.

Respuesta

5

que sería mucho mejor usar el EXTENT en lugar del método AFFINE. Solo necesita calcular dos cosas: qué parte de la entrada desea ver y qué tan grande debe ser. Por ejemplo, si desea ver toda la imagen reducida a la mitad del tamaño (es decir, reduciendo el zoom en 2), pasaría los datos (0, 0, im.size [0], im.size [1]) y el tamaño (im.size [0]/2, im.size [1]/2).

+0

Gracias por la información, funcionó muy bien :) –

0

Se aplica una transformación afín y una transformación lineal seguida de una traducción. Pero solo debería cambiar el tamaño de una parte de la imagen con el método de cambio de tamaño. Hay algunos ejemplos de código en el siguiente SO responder:

+0

Gracias, estoy usando el grado uno, pero ese ejemplo era muy útil:) –

Cuestiones relacionadas