2012-04-09 2 views
1

Могут ли я изменить размер изображения в питоне на заданную высоту и ширину, я использую Python 2.5, и я попытался в этом учебнике http://effbot.org/imagingbook/introduction.htm, и я установил библиотеку PIL для изображений, но когда я пытаюсь написать:изменить размер изображения в питоне

import Image 
im = Image.open("test.jpg") 

У меня есть неопределенная переменная из импорта: откройте , хотя import Image не дает ошибок? Спасибо заранее.

ответ

3

У вас возникла проблема с ввозом. Используйте вместо «импорта изображения»:

from PIL import Image 

Затем перейдите так:

image = Image.open('/example/path/to/image/file.jpg/') 
image.thumbnail((80, 80), Image.ANTIALIAS) 
image.save('/some/path/thumb.jpg', 'JPEG', quality=88) 
+0

: Да, это была проблема, спасибо –

+0

Я очень удивлен тем самым, учитывая, что даже на веб-сайте PIL [даже учебники] (http://www.pythonware.com/library/pil/handbook/introduction.htm) показывают, что использование «import Image» должно работать. Является ли это новой версией версии PIL? Я использовал PIL уже более года и импортировал его только с помощью 'import Image' и никогда не сталкивался с проблемой ... – ely

+0

@EMS: проблема может быть в версии python, которую вы используете? 2.5 ver. –

1

Кому это может быть полезным: Просто обнаружил, что на official Pillow website. Вероятно, вы использовали подушку, а не PIL.

Предупреждение

Подушка> = 1,0 больше не поддерживает «импорта изображения». Пожалуйста, используйте «из PIL import Image» вместо этого.

0
import os 
from PIL import Image 

imagePath = os.getcwd() + 'childFolder/myImage.png' 
newPath = os.getcwd() + 'childFolder/newImage.png' 
cropSize = 150, 150 

img = Image.open(imagePath) 
img.thumbnail(cropSize, Image.ANTIALIAS) 
img.save(newPath) 
0

, если у вас есть проблемы с PIL другой альтернативой может быть scipy.misc библиотека. Предположим, что вы хотите изменить размер до размера 48х48 и ваше изображение находится в том же каталоге, что и сценарий

from from scipy.misc import imread 
from scipy.misc import imresize 

, а затем:

img = imread('./image_that_i_want_to_resize.jpg') 
img_resized = imresize(img, [48, 48])