weird buggy image poster generator
parent
2be3fd1639
commit
d4962ea8a2
@ -0,0 +1,83 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os, datetime, sys
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
|
from PIL import Image
|
||||||
|
from reportlab.pdfgen import canvas
|
||||||
|
from reportlab.lib.pagesizes import A0
|
||||||
|
|
||||||
|
|
||||||
|
# p = ArgumentParser("")
|
||||||
|
# p.add_argument("--output", default="poster.pdf")
|
||||||
|
# p.add_argument("--interpolation", default="cubic", help="nearest,cubic")
|
||||||
|
# p.add_argument("--labels", default="labels_public.txt")
|
||||||
|
# args = p.parse_args()
|
||||||
|
|
||||||
|
|
||||||
|
pagewidth, pageheight = A0
|
||||||
|
|
||||||
|
c = canvas.Canvas("reportlab_image_poster.pdf", pagesize=A0)
|
||||||
|
x, y = 0, 0
|
||||||
|
imagewidth = 200
|
||||||
|
aw = pagewidth - imagewidth
|
||||||
|
images = (glob ("images/*.JPG"))
|
||||||
|
dx = aw/(len(images)-1)
|
||||||
|
dy = 20
|
||||||
|
|
||||||
|
for image in images:
|
||||||
|
print ("Adding an image to the PDF")
|
||||||
|
print (image)
|
||||||
|
im = Image.open(image)
|
||||||
|
pxwidth, pxheight = im.size
|
||||||
|
print ("Got the image, it's size is:", im.size)
|
||||||
|
imageheight = imagewidth * (pxheight / pxwidth)
|
||||||
|
c.drawInlineImage(image, x, y, imagewidth, None)
|
||||||
|
print ("placing image {0} at {1}".format(image, (x,y)))
|
||||||
|
x += dx
|
||||||
|
y += dy
|
||||||
|
|
||||||
|
c.showPage()
|
||||||
|
c.save()
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
#################
|
||||||
|
# GRID
|
||||||
|
# imsize = 96
|
||||||
|
# cols = int(A0[0] // imsize)
|
||||||
|
# rows = int(A0[1] // imsize)
|
||||||
|
# # calculate margins to center the grid on the page
|
||||||
|
# mx = (A0[0] - (cols*imsize)) / 2
|
||||||
|
# my = (A0[1] - (rows*imsize)) / 2
|
||||||
|
# print ("Grid size {0}x{1} (cols x rows)".format(cols, rows))
|
||||||
|
# print (" (total size:", cols*imsize, rows*imsize, "margins:", mx, my, ")")
|
||||||
|
#################
|
||||||
|
|
||||||
|
for l in range(7):
|
||||||
|
print (LABELS[l])
|
||||||
|
col = 0
|
||||||
|
row = 0
|
||||||
|
with open(args.labels) as f:
|
||||||
|
f.readline()
|
||||||
|
for line in f:
|
||||||
|
path, label = line.split(",")
|
||||||
|
label = int(label)
|
||||||
|
if label == l:
|
||||||
|
image = Image.open(path)
|
||||||
|
print (image.size)
|
||||||
|
|
||||||
|
x = mx + (col*imsize)
|
||||||
|
y = my + imsize + (7-l)*(4*imsize) - ((row+1)*imsize)
|
||||||
|
|
||||||
|
c.drawInlineImage(image, x, y, width=imsize, height=imsize)
|
||||||
|
col += 1
|
||||||
|
if col >= cols:
|
||||||
|
col = 0
|
||||||
|
row +=1
|
||||||
|
if row >= 3:
|
||||||
|
break
|
||||||
|
|
||||||
|
c.showPage()
|
||||||
|
c.save()
|
Loading…
Reference in New Issue