2016-05-11 2 views
2

Я довольно nooby для кодирования в целом, поэтому, пожалуйста, будьте нежны, я стараюсь изо всех сил здесь. Я хочу сценарий, который может обрабатывать изображения изображений в Maya. Процесс должен быть простым: открыть изображение из заданной папки пути, изменить его размер, перезаписать. Я знаю, что PIL должен это сделать, но похоже, что он не поддерживается с Maya 2014 или что-то в этом роде. Я пробовал код в Maya 2012, и он работает, но поскольку я хочу, чтобы мой код был доступен для всех, я хочу найти обходное решение. Я знаю, что кто-то переиздал модуль, чтобы его можно было поддерживать в более поздних сборках (только в Windows).Re размер изображения в Maya с Python

http://mistermatti.wordpress.com/2014/02/04/maya-2014-with-pythons-pil-module/

Но даже когда я установить его в моих сборках, я получаю эту ошибку при попытке открыть мой файл:

open("E:/SoNuchframe000-00000.png") 

не может идентифицировать файл изображения

I «Я попытался скопировать весь модуль в свой собственный скрипт, и он делает то же самое.

На стороне я также попытался модуль OpenMaya

image.readFromFile('E:/SoNuchframe000-00000.png') 
    image.resize(2048, 2048, False) 
    image.writeToFile('E:/SoNuchframe000-00000.png' + 'Resized.png') 

, и это дает мне пустой образ 12Мб (так, кстати, если бы я мог сохранить его сжаты, что было бы удивительным)

Итак, теперь я достиг предела своих сил. Я не знаю, что я могу сделать отсюда. Любое предложение или совет будут очень приветствоваться. Заранее спасибо

+0

Дважды проверьте свое имя файла. Я также заметил, что вам не хватает аргумента сжатия из 'image.writeToFile (путь, сжатие)'. Сжатие должно соответствовать расширению ('' png'' в вашем случае). –

+0

Ты спаситель жизни, мой друг. «png» исчезло. Я всегда скучаю по таким глупым деталям. огромное спасибо –

ответ

1

Вы можете использовать QImage.scaled() из PySide/PyQt http://pyqt.sourceforge.net/Docs/PyQt4/qimage.html#scaled

from PySide.QtCore import * 
from PySide.QtGui import * 

picture = QImage(path) 
pic_rescaled = picture.scaled(2048, 2048, Qt.KeepAspectRatio) 
pic_rescaled.save(path, "PNG") 

Должно работать на любой майя 2014+

1

Вы пропустили аргумент сжатия внутри image.writeToFile(path, compression). В этом случае это должно быть «png», но в целом это должно соответствовать расширению загруженного вами файла.