web-dev-qa-db-fra.com

convertir tiff en jpeg en python

Quelqu'un peut-il m'aider à lire l'image .tiff et à le convertir au format JPEG?

from PIL import Image
im = Image.open('test.tiff')
im.save('test.jpeg')

Le code ci-dessus ne fonctionnait pas.

11

J'ai résolu le problème avec succès. J'ai posté le code pour lire les fichiers tiff dans un dossier et convertir en jpeg automatiquement.

import os
from PIL import Image

yourpath = os.getcwd()
for root, dirs, files in os.walk(yourpath, topdown=False):
    for name in files:
        print(os.path.join(root, name))
        if os.path.splitext(os.path.join(root, name))[1].lower() == ".tiff":
            if os.path.isfile(os.path.splitext(os.path.join(root, name))[0] + ".jpg"):
                print "A jpeg file already exists for %s" % name
            # If a jpeg is *NOT* present, create one from the tiff.
            else:
                outfile = os.path.splitext(os.path.join(root, name))[0] + ".jpg"
                try:
                    im = Image.open(os.path.join(root, name))
                    print "Generating jpeg for %s" % name
                    im.thumbnail(im.size)
                    im.save(outfile, "JPEG", quality=100)
                except Exception, e:
                    print e
13
import os, sys
from PIL import Image

J'ai essayé de sauvegarder directement au format jpeg mais l'erreur indiquait que le mode était P et incompatible avec le format JPEG. Vous devez donc le convertir en mode RVB comme suit.

for infile in os.listdir("./"):
    print "file : " + infile
    if infile[-3:] == "tif" or infile[-3:] == "bmp" :
       # print "is tif or bmp"
       outfile = infile[:-3] + "jpeg"
       im = Image.open(infile)
       print "new filename : " + outfile
       out = im.convert("RGB")
       out.save(outfile, "JPEG", quality=90)
1
user2019716