Vamos converter um texto em escrita à mão?
7255 단어 tipspythonprogramming
O que vamos precisar?
Primeiro, vamos criar nosso modelo, queremos que seja com nossa caligrafia, então o que eu fiz e acho que vocês podem fazer de uma forma melhor? Ascii :
Desde já peço desculpa pela péssima foto que dificultou um pouco, então sugiro que vocês façam em um papel em branco e melhore a Qualidade da imagem. Agora vamos cortar/tirar print de cada carácter, renomear com seu referivivo código da tabela Ascii e salvar em uma 파스타 dentro do seu projeto.
Com nosso modelo pronto, chegou a hora de programarmos o script, que é muito simples,vamos usar a biblioteca PIL, que é uma biblioteca de código aberto do python que nos dá suporte para abrir, manipular e salvar alguns formatos de arquivos de imagens e também usaremos a biblioteca unicode, para removermos acentos do nosso texto de entrada.
pip install unidecode
from PIL import Image
from unidecode import unidecode
Vamos pensar em uma página, na verdade vamos usar uma página em branco onde vamos gravar nosso texto (mas podem usar a que quiserem) em forma de imagem, pensando em questão de altura e largura da mesma, temos os eixos x e y, devido a isso , vamos iniciar esses eixos nas posições 0.
input_text = open('text.txt').read()
# caminho da imagem onde vamos escrever nosso texto
background = Image.open('hand_fonts/page.png')
x, y = 0, 0
Feito isso, vamos percorrer cada caractere do nosso texto de entrada. A o ascii do item iterado e é ai que a mágica acontece, vamos associar esse número com a 이미지 특파원 da nossa fonte que salvamos na 파스타 hand_fonts.
Para finalizarmos, aplicamos algumas regras finais onde verificamos se a largura da linha não está excedendo a largura da página, e se não há quebra de linha, se sim, acrescentamos ao eixo y 140px, que pode variar dependsendo da sua necessidade e do tamanho da imagem escolhida.
for text in unidecode(input_text):
# verifica se tem quebra de linha e atualiza o eixo y,
# acrescentando 140px para a proxima linha
if ord(text) == 10:
print('Entrou?')
x = 0
y += 140
continue
# vamos usar a função ord que irá reproduzir
# o respectivo código Ascii do nosso item e converter em string
ascii_current = str(ord(text))
try:
font = Image.open(f'hand_fonts/{ascii_current}.png')
except:
continue
# atualiza a pagina em branco que escolhemos
background.paste(font, (x, y))
x += font.width
# verificamos se a largura da linha está excedendo a largura da página, se sim,
# vamos para a próxima linha adicionando 140 px na variável y
if background.width < x or len(text) * 115 > (background.width - x):
x = 0
y += 140
background.show()
E por hoje é só, gostou? Compartilha com seus amigos e me siga no que semper trago assuntos relatedes para lá.
Obrigada, e até a próxima!
Repositório
Reference
이 문제에 관하여(Vamos converter um texto em escrita à mão?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/thaisplicando/vamos-converter-um-texto-em-escrita-a-mao-56j1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)