#!python3
import os
import PythonMagick
def smallAndThumbnail(fname, smallpath, thumbnailpath):
name, ext = os.path.splitext(os.path.basename(fname))
smallfname = os.path.join(smallpath, name + '.jpg')
thumbfname = os.path.join(thumbnailpath, name + '.jpg')
img = PythonMagick.Image() # empty object first
img.density('300') # set the density for readeing; must be as a string
img.read(fname + '[0]') # read the first page of PDF
# Background color.
bgcolor = 'white' # can have the form '#ffffff'
# The small image first.
geometry = '220x220'
imgResult = PythonMagick.Image(geometry, bgcolor) # init -- the square of the colour
imgCopy = PythonMagick.Image(img) # make a copy
imgCopy.sample(geometry)
imgResult.composite(imgCopy,
PythonMagick.GravityType.CenterGravity,
PythonMagick.CompositeOperator.CopyCompositeOp)
imgResult.write(smallfname)
# The thumbnail.
geometry = '48x48'
imgResult = PythonMagick.Image(geometry, bgcolor) # init -- the square of the colour
imgCopy = PythonMagick.Image(img) # make a copy
imgCopy.sample(geometry)
imgResult.composite(imgCopy,
PythonMagick.GravityType.CenterGravity,
PythonMagick.CompositeOperator.CopyCompositeOp)
imgResult.write(thumbfname)
if __name__ == '__main__':
smallAndThumbnail('./pdf/a.pdf', './small', './thumbnail')