Silva
Sobre o terceiro exercício. Salamemes.

# SALAMEMES

# Reflexão

# Não consigo mesmo arranjar mais imagens sobre Salazar. As imagens tiveram de ser alargadas e esticadas. Por um lado, acho que perde um pouco de qualidade e muitas vezes perde-se a identidade de Salazar. A questão foi mesmo preencher todo o ecrã do meme com Salazar.

# O projecto actual tem voláteis as imagens e os textos que podemos mover e trabalhar de forma livre através das várias opções, desde a tipografia, cor, linha; até à imagem, distorcer, aumentar, rodar, entre outros.

#   As opções são mesmo muitas e dão para manipular quase todo o meme, desde fontes, tamanhos, posições, imagens, textos, entre outros. Estes são apenas alguns dos screenshots que tirei do programa. Mas claro que as combinações são muitas.

#   Aqui fica o código final do programa:

#

# SALAMEMES

#

# base do programa

size(400, 400)

colormode(RGB, 255)

background(255, 255, 255)

nofill()

nostroke()

# definir as listas

imagensparafundo = [“salazar01.jpg”, “salazar02.jpg”,

                    ”salazar03.jpg”, “salazar04.jpg”,

                    ”salazar05.jpg”]

tipografiasparacima = [“Tahoma”, “Impact”, “Comic Sans Ms”,

                   “Georgia”, “Times New Roman”, “Arial”]

tipografiasparabaixo = [“Tahoma”, “Impact”, “Comic Sans Ms”,

                    ”Georgia”, “Times New Roman”, “Arial”]

textosparacima = [“Usa Comic Sans”, “Times is”, “Neue Arial”,

                  ”Quebra as regras”, “A minha favorita”,

                  ”Do best”, “Bei grotesk”, “A lei manda”,

                  ”Porque eu quero”, “Tu mereces”]

textosparabaixo = [“usa Comic Sans”, “Times is”, “neue Arial”,

                  ”quebra as regras”, “a minha favorita”,

                  ”do best”, “bei grotesk”, “a lei manda”,

                  ”porque eu quero”, “tu mereces”]

# definir as variaveis :D

# imagem de fundo

var(“imagensfundo”, NUMBER, 0, 0, 5)

var(“posicaoimagemx”, NUMBER, -100, -400, 400)

var(“posicaoimagemy”, NUMBER, -100, -400, 400)

var(“rotacao”, NUMBER, 0, 0, 361)

var(“escalarhoriz”, NUMBER, 0, 0, 3)

var(“escalarvert”, NUMBER, 0, 0, 3)

var(“distorcaohoriz”, NUMBER, 0, 0, 2)

var(“distorcaovert”, NUMBER, 0, 0, 2)

# geral

var(“linha”, NUMBER, 2, 0.25, 6)

var(“linhacor”, NUMBER, 0, 0, 256)

# parte de cima

var(“posicaocimax”, NUMBER, 40, -200, 700)

var(“posicaocimay”, NUMBER, 80-48, -200, 700)

var(“rodarcima”, NUMBER, 0, 0, 361)

var(“tipografiascima”, NUMBER, 0, 0, 6)

var(“tamanhocima”, NUMBER, 48, 12, 72)

var(“textoscima”, NUMBER, 0, 0, 11)

var(“corcima”, NUMBER, 255, 0, 255)

# parte de baixo

var(“posicaobaixox”, NUMBER, 40, -200, 700)

var(“posicaobaixoy”, NUMBER, 400-48, -200, 700)

var(“rodarbaixo”, NUMBER, 0, 0, 361)

var(“tipografiasbaixo”, NUMBER, 0, 0, 11)

var(“tamanhobaixo”, NUMBER, 48, 12, 72)

var(“textosbaixo”, NUMBER, 0, 0, 7)

var(“corbaixo”, NUMBER, 255, 0, 255)

# definir as variaveis

# para escolher das listas

imagemfundo = imagensparafundo[int(imagensfundo)]

# definir um conjunto

# para a rotacao, 

# daí a imagem de fundo

# estar aqui

nofill()

nostroke()

transform(CENTER)

scale(escalarhoriz, escalarvert)

rotate(rotacao)

skew(distorcaovert, distorcaohoriz)

image(imagemfundo, posicaoimagemx, posicaoimagemy, 600, 600)

reset()

nofill()

nostroke()

# definir as variaveis

# para escolher das listas

textocima = textosparacima[int(textoscima)]

textobaixo = textosparabaixo[int(textosbaixo)]

tipografiacima = tipografiasparacima[int(tipografiascima)]

tipografiabaixo = tipografiasparabaixo[int(tipografiasbaixo)]

# definir a tipografia

stroke(linhacor)

strokewidth(linha)

# criar os textos

# para cima

fill(corcima)

font(tipografiacima)

fontsize(tamanhocima)

transform(CENTER)

rotate(rodarcima)

textpath(textocima, posicaocimax, posicaocimay)

reset()

# e para baixo

fill(corbaixo)

font(tipografiabaixo)

fontsize(tamanhobaixo)

transform(CENTER)

rotate(rodarbaixo)

textpath(textobaixo, posicaobaixox, posicaobaixoy)

#

# END

# OF BOT

Terceiro projecto. Salamemes.

# Aqui fica um primeiro post sobre o programa. Estou a estudar se coloco mais imagens ou se não. O preview anterior (a imagem do post preview) é deste programa.

#

# SALAMEMES

#

# base do programa

size(400, 400)

colormode(RGB, 255)

background(255, 255, 255)

nofill()

nostroke()

# definir as listas

imagensparafundo = [“salazar01.jpg”, “salazar02.jpg”]

tipografiasparacima = [“Tahoma”, “Impact”, “Comic Sans Ms”,

                   “Georgia”, “Times New Roman”, “Arial”]

tipografiasparabaixo = [“Tahoma”, “Impact”, “Comic Sans Ms”,

                    ”Georgia”, “Times New Roman”, “Arial”]

textosparacima = [“Usa Comic Sans”, “Times is”, “Neue Arial”,

                  ”Quebra as regras”, “A minha favorita”,

                  ”Do best”, “Bei grotesk”, “A lei manda”,

                  ”Porque eu quero”, “Tu mereces”]

textosparabaixo = [“usa Comic Sans”, “Times is”, “neue Arial”,

                  ”quebra as regras”, “a minha favorita”,

                  ”do best”, “bei grotesk”, “a lei manda”,

                  ”porque eu quero”, “tu mereces”]

# definir as variaveis :D

# imagem de fundo

var(“imagensfundo”, NUMBER, 0, 0, 2)

var(“posicaoimagemx”, NUMBER, -100, -400, 400)

var(“posicaoimagemy”, NUMBER, -100, -400, 400)

var(“rotacao”, NUMBER, 0, 0, 361)

var(“escalarhoriz”, NUMBER, 0, 0, 3)

var(“escalarvert”, NUMBER, 0, 0, 3)

var(“distorcaohoriz”, NUMBER, 0, 0, 2)

var(“distorcaovert”, NUMBER, 0, 0, 2)

# geral

var(“linha”, NUMBER, 2, 0.25, 6)

var(“linhacor”, NUMBER, 0, 0, 256)

# parte de cima

var(“posicaocimax”, NUMBER, 40, -200, 700)

var(“posicaocimay”, NUMBER, 80-48, -200, 700)

var(“rodarcima”, NUMBER, 0, 0, 361)

var(“tipografiascima”, NUMBER, 0, 0, 6)

var(“tamanhocima”, NUMBER, 48, 12, 72)

var(“textoscima”, NUMBER, 0, 0, 11)

var(“corcima”, NUMBER, 255, 0, 255)

# parte de baixo

var(“posicaobaixox”, NUMBER, 40, -200, 700)

var(“posicaobaixoy”, NUMBER, 400-48, -200, 700)

var(“rodarbaixo”, NUMBER, 0, 0, 361)

var(“tipografiasbaixo”, NUMBER, 0, 0, 11)

var(“tamanhobaixo”, NUMBER, 48, 12, 72)

var(“textosbaixo”, NUMBER, 0, 0, 7)

var(“corbaixo”, NUMBER, 255, 0, 255)

# definir as variaveis

# para escolher das listas

imagemfundo = imagensparafundo[int(imagensfundo)]

# definir um conjunto

# para a rotacao, 

# daí a imagem de fundo

# estar aqui

nofill()

nostroke()

transform(CENTER)

scale(escalarhoriz, escalarvert)

rotate(rotacao)

skew(distorcaovert, distorcaohoriz)

image(imagemfundo, posicaoimagemx, posicaoimagemy, 600, 600)

reset()

nofill()

nostroke()

# definir as variaveis

# para escolher das listas

textocima = textosparacima[int(textoscima)]

textobaixo = textosparabaixo[int(textosbaixo)]

tipografiacima = tipografiasparacima[int(tipografiascima)]

tipografiabaixo = tipografiasparabaixo[int(tipografiasbaixo)]

# definir a tipografia

stroke(linhacor)

strokewidth(linha)

# criar os textos

# para cima

fill(corcima)

font(tipografiacima)

fontsize(tamanhocima)

transform(CENTER)

rotate(rodarcima)

textpath(textocima, posicaocimax, posicaocimay)

reset()

# e para baixo

fill(corbaixo)

font(tipografiabaixo)

fontsize(tamanhobaixo)

transform(CENTER)

rotate(rodarbaixo)

textpath(textobaixo, posicaobaixox, posicaobaixoy)

#

# END

# OF BOT

#

# endereços da imagem:

# http://solnascente.weblog.com.pt/arquivo/DSC00102.JPG

# o blog onde foi tirada a imagem

# http://solnascente.weblog.com.pt/arquivo/2007/04/salazar_e_os_gr_1.html

Exercício da importação de texto externo.

#

# IMPORTAR TEXTOS 

#

# base do programa

size(400, 400)

colormode(RGB, 255)

background(255, 255, 255)

#

# imagem e textos

image(“advicedog.jpg”, 0, 0)

font(“Impact”, 20)

def get_line(lines):

    # pass

    # return choice(lines)

    l = choice(lines)

    if l.isupper():

        # nao serve, vai buscar outra

        l = get_line(lines)

        return l

    else:

        # devolve o valor l

        return l

#

mensagem = open(“do texto.txt”, “r”)

lines = mensagem.readlines()

l1 = get_line(lines)

l2 = get_line(lines)

fill(1)

stroke(0)

textpath(l1, 10, 50)

textpath(l2, 10, 380)