PIL: agrandir une image
Je vais avoir de la difficulté à obtenir PIL agrandir une image. Les grandes images sont revus à la baisse, mais les petites images ne sera pas plus grande.
# get the ratio of the change in height of this image using the
# by dividing the height of the first image
s = h / float(image.size[1])
# calculate the change in dimension of the new image
new_size = tuple([int(x*s) for x in image.size])
# if this image height is larger than the image we are sizing to
if image.size[1] > h:
# make a thumbnail of the image using the new image size
image.thumbnail(new_size)
by = "thumbnailed"
# add the image to the images list
new_images.append(image)
else:
# otherwise try to blow up the image - doesn't work
new_image = image.resize(new_size)
new_images.append(new_image)
by = "resized"
logging.debug("image %s from: %s to %s" % (by, str(image.size), str(new_size)))
- pourriez-vous aussi s'il vous plaît écrivez comment vous avez fait lire le fichier image?
Vous devez vous connecter pour publier un commentaire.
Pour tous ceux qui lisent ceci, d'avoir le même problème - de l'essayer sur une autre machine. J'ai eu les deux
et
correctement redimensionner des fichiers. Il doit y avoir quelque chose de mal avec l'installation de python sur mon serveur. A bien fonctionné sur ma machine locale.
Voici un exemple de travail comment redimensionner une image dans tous les sens avec openCV et numpy:
Simple que cela. Vous voulez utiliser les "cv2.INTER_CUBIC" pour les agrandir (facteur > 1) et "cv2.INTER_AREA" pour rendre les images plus petites (facteur de < 1).
Croissante des images est beaucoup plus impliqué que la réduction des effectifs. Faire des images plus petites consiste à prendre des pixels existants et l'élimination de certains d'entre eux. Photo de l'élargissement nécessite d'effectuer des pixels existants représentent eux-mêmes des pixels supplémentaires qui n'existent pas à faire apparaître l'image plus grande. J'ai trouvé quelques produits logiciels qui peuvent le faire. Véritable Fractiles aurait pu, et j'ai trouvé un produit appelé Imagener qui peut.