kopia lustrzana https://github.com/villares/sketch-a-day
79 wiersze
2.1 KiB
Python
79 wiersze
2.1 KiB
Python
"""
|
|
ASCII video
|
|
Aperte 'g' para gravar um PDF na pasta do sketch
|
|
Press 'g' to record a PDF
|
|
a, d, w, s to change sizes
|
|
"""
|
|
|
|
add_library('video')
|
|
add_library('pdf')
|
|
|
|
color_mode = False
|
|
recordingPDF = False
|
|
grid_size = 8 # tamanho da grade
|
|
font_size = 12 # tamanho dsa letras
|
|
gliphs = (
|
|
" .`-_':,;^=+/\"|)\\<>)iv%xclrs{*}I?!][1taeo7zjLu" +
|
|
"nT#JCwfy325Fp6mqSghVd4EgXPGZbYkOA&8U$@KHDBWNMR0Q"
|
|
)[::-1]
|
|
print(gliphs)
|
|
|
|
def setup():
|
|
global fonte, n_cols, n_rows, video
|
|
size(640, 480)
|
|
noStroke()
|
|
smooth()
|
|
rectMode(CENTER)
|
|
fonte = createFont("SourceCodePro-Bold",60)
|
|
textFont(fonte)
|
|
textAlign(CENTER, CENTER)
|
|
video = Capture(this, width, height)
|
|
# Começa a captura
|
|
video.start()
|
|
|
|
def draw():
|
|
global recordingPDF, n_rows, n_cols
|
|
n_cols = int(width / grid_size)
|
|
n_rows = int(height / grid_size)
|
|
if video.available():
|
|
background(255)
|
|
# se foi apertado 'g'
|
|
if recordingPDF:
|
|
beginRecord(PDF, "Imagem.pdf")
|
|
video.read()
|
|
video.loadPixels()
|
|
for c in range(n_cols):
|
|
x = c * grid_size
|
|
for r in range(n_rows):
|
|
y = r * grid_size
|
|
i = y * video.width + x # índice da posição do pixel
|
|
#colour = video.get(x, y)
|
|
colour = video.pixels[i]
|
|
bri = brightness(colour)
|
|
g = int(map(bri, 0, 255, 0, len(gliphs)-1))
|
|
if color_mode: fill(colour)
|
|
else: fill(0)
|
|
textSize(font_size)
|
|
text(gliphs[g], x + grid_size / 2, y + grid_size / 2)
|
|
|
|
if (recordingPDF):
|
|
endRecord()
|
|
println('saved ascii_image.pdf')
|
|
recordingPDF = False
|
|
|
|
|
|
def keyPressed(self):
|
|
global recordingPDF, font_size, grid_size, color_mode
|
|
if key == 'g':
|
|
recordingPDF = True
|
|
if key == 'w':
|
|
font_size += 1
|
|
if key == 's' and font_size > 1:
|
|
font_size -= 1
|
|
if key == 'a':
|
|
grid_size += 1
|
|
if key == 'd' and grid_size > 1:
|
|
grid_size -= 1
|
|
if key == 'c':
|
|
color_mode = not color_mode
|