2015-10-25 2 views
2

Это метод я писал:'JPEG' ошибка неподдерживаемый формат

def pdf_page_to_png(src_pdf, pagenum=0, resolution=300, slug=''): 
    dst_pdf = PyPDF2.PdfFileWriter() 
    dst_pdf.addPage(src_pdf.getPage(pagenum)) 

    pdf_bytes = io.BytesIO() 
    dst_pdf.write(pdf_bytes) 
    pdf_bytes.seek(0) 

    img = Image(file=pdf_bytes, resolution=resolution) 
    img.convert("jpeg") 

    if pagenum == 0: 
     os.makedirs('media/einsert/%s' % slug) 

    img.save(filename='media/einsert/%s/page_%s.jpeg' % (slug, pagenum)) 

    return img 

и я получаю

'JPEG' не поддерживается формат

ошибка

/Users/daro/praca/polsha24/lib/python2.7/site-packages/wand/image.py in format 
    def format(self, fmt): 
     if not isinstance(fmt, string_type): 
      raise TypeError("format must be a string like 'png' or 'jpeg'" 
          ', not ' + repr(fmt)) 
     fmt = fmt.strip() 
     r = library.MagickSetImageFormat(self.wand, binary(fmt.upper())) 
     if not r: 
         raise ValueError(repr(fmt) + ' is unsupported format') ... 
     r = library.MagickSetFilename(self.wand, 
             b'buffer.' + binary(fmt.lower())) 
     if not r: 
      self.raise_exception() 
    @property 

osx el capit a python 2.7.10 тот же код работает на другом компьютере с debian.

ответ

0

Вы неправильно поняли функцию Image.convert. Он не конвертирует между форматами файлов, но форматы пикселей, например. «RGB» для пикселей RGB или «CMYK» для данных CMYK. На самом деле выводить изображение в определенном формате файла, используйте Image.save:

jpeg_bytes = io.BytesIO() 
img.save(jpeg_bytes, "jpeg") 

Буфер jpeg_bytes затем содержит данные в формате JPEG.

Редактировать: если я правильно помню, PDF-файл записывается только в PIL. Таким образом, вы не можете загрузить изображение из исходных данных PDF. Но это другой вопрос ...

+0

http://docs.wand-py.org/en/0.4.1/wand/image.html?highlight=convert#wand.image.Image.convert – KylieY

+0

Извините, я предположил, что вы использовали Библиотека изображений Python. Я должен был прочитать теги ... У меня нет опыта с палочкой. Вы используете Python2 или 3? Похоже, что библиотека проверяет неправильный тип для формата. –

+0

im Использование python 2.7.10 – KylieY

1

Вам может понадобиться установить 'JPEG' и/или 'Ghostscript'

Для макинтош:

brew install jpeg 
brew install ghostscript 

Для Linux:

JPEG: http://www.ijg.org/files/

Ghostscript: http://ghostscript.com/download/

Загрузить и установить последние версии.

Он решил аналогичную проблему для меня.