support file objects as input

main
josch 9 years ago
parent 18ca3b4491
commit 3fdd824201

@ -24,6 +24,10 @@ import struct
from PIL import Image
from datetime import datetime
from jp2 import parsejp2
try:
from cStringIO import cStringIO
except ImportError:
from io import BytesIO as cStringIO
# XXX: Switch to use logging module.
def debug_out(message, verbose=True):
@ -214,9 +218,13 @@ def convert(images, dpi=None, x=None, y=None, title=None, author=None,
for imfilename in images:
debug_out("Reading %s"%imfilename, verbose)
try:
rawdata = imfilename.read()
im = cStringIO(rawdata)
except:
with open(imfilename, "rb") as im:
rawdata = im.read()
im.seek(0)
im = cStringIO(rawdata)
try:
imgdata = Image.open(im)
except IOError as e:

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

@ -1,20 +0,0 @@
import datetime
import os
import unittest
import img2pdf
HERE = os.path.dirname(__file__)
moddate = datetime.datetime(2014, 1, 1)
class TestImg2Pdf(unittest.TestCase):
def test_jpg2pdf(self):
with open(os.path.join(HERE, 'test.jpg'), 'r') as img_fp:
with open(os.path.join(HERE, 'test.pdf'), 'r') as pdf_fp:
self.assertEqual(
img2pdf.convert([img_fp], 150,
creationdate=moddate, moddate=moddate),
pdf_fp.read())
def test_png2pdf(self):
with open(os.path.join(HERE, 'test.png'), 'r') as img_fp:
self.assertRaises(SystemExit, img2pdf.convert, [img_fp], 150)
Loading…
Cancel
Save