Skip to content

Commit 79dd0fd

Browse files
committed
pdf image decoded, yeah \o/
1 parent 86e4a7e commit 79dd0fd

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

kivy/core/image/img_pdf.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,24 @@
22
PDF: PDF image loader
33
'''
44

5+
try:
6+
from PIL import Image as PILImage
7+
except:
8+
raise
9+
510
from kivy.logger import Logger
611
from kivy.core.image import ImageLoaderBase, ImageLoader
712

813
Debug = False
914

1015
import io
1116
from pyPdf import PdfFileWriter, PdfFileReader
17+
import PythonMagick as pm
1218

1319
class ImageLoaderPDF(ImageLoaderBase):
1420
'''Image loader for PDF'''
1521

16-
def __init__(self, page=0, filename=None, **kwargs):
22+
def __init__(self, filename, page=0, **kwargs):
1723
self.page = page
1824
super(ImageLoaderPDF, self).__init__(filename, **kwargs)
1925

@@ -28,6 +34,7 @@ def load(self, filename):
2834
# first extract the page from the pdf
2935
pdf = PdfFileReader(open(filename, 'rb'))
3036
p2 = pdf.getPage(self.page)
37+
size = p2.cropBox[2:]
3138
w = PdfFileWriter()
3239
w.addPage(p2)
3340
f = io.BytesIO()
@@ -36,11 +43,11 @@ def load(self, filename):
3643

3744
# then convert the one page pdf filebuffer to an image
3845
blob = pm.Blob(f.read())
39-
blobpng = pm.Blob()
40-
pm.Image(blob).write(blobpng,'jpg')
46+
blobjpg = pm.Blob()
47+
pm.Image(blob).write(blobjpg,'rgb')
4148
#blobpng.data
4249

43-
im = PILImage.frombuffer('rgb', len(blobpng.data), blobpng.data)
50+
im = PILImage.frombuffer('RGB', size, blobjpg.data)
4451

4552
except:
4653
Logger.warning('Image: Unable to load image <%s>' % filename)

0 commit comments

Comments
 (0)