def cross(x, y): with db.savedState(): db.fill(None) db.stroke(0) db.strokeWidth(1) db.translate(x, y) # line vertical db.line((u * 2, 0), (u * 2, u * 4)) # line horizontale db.line((0, u * 2), (u * 4, u * 2))
def trame(x, y, s, n, w): r = 0.97 * w step = r / n with db.savedState(): db.fill(None) db.stroke(0) db.strokeWidth(s) db.translate(x, y) for i in range(n): f = i / (n - 1) x = db.sin(2 * pi * 1) * 68 * db.sin(pi * f) circle((x, 0), r) r -= step
db.translate(x, y) # line vertical db.line((u * 2, 0), (u * 2, u * 4)) # line horizontale db.line((0, u * 2), (u * 4, u * 2)) # cross cross(m, m) cross((pw - m * 2), m) cross(m, (ph - m * 2)) cross((pw - m * 2), (ph - m * 2)) # text db.stroke(None) db.fill(0) db.font("Plantin MT Pro", 11) db.text("Une forme molle dessinée à partir de trois points.", (m * 2, m * 3)) db.translate(pw / 2, ph / 2) db.stroke(None) db.fill(1, 0, 0) # draw a unique shape drawShape(pw * 0.5) # central cross cross(m, m) # db.saveImage(str(name) + '.jpg') # db.saveImage(str(name) + '.pdf')
im = Image.open(path).convert('RGB') im.save(path) w, h = im.size print(w, h, im.mode) im = im.resize((int(w / 8), int(h / 8))) w, h = im.size print(w, h) im.save('img/image.jpg') fw = (pw - w) / 2 fh = (ph - h) / 2 print(fw, fh) db.image('img/image.jpg', (fw, fh)) # text db.stroke(None) db.fill(0) db.font("Plantin MT Pro", 10) db.text("Une image, composée des canaux RVB de trois autres images.", (m * 2, m * 3)) # croix cross(m, m) cross((pw - m * 2), m) cross(m, (ph - m * 2)) cross((pw - m * 2), (ph - m * 2)) # db.saveImage(str(name) + '.jpg') db.saveImage(str(name) + '.svg') # db.saveImage(str(name) + '.pdf')