Skip to content

Improve text image process performance#31

Open
luiz-meireles wants to merge 2 commits intorodorgas:masterfrom
luiz-meireles:refactor-emoji-suport
Open

Improve text image process performance#31
luiz-meireles wants to merge 2 commits intorodorgas:masterfrom
luiz-meireles:refactor-emoji-suport

Conversation

@luiz-meireles
Copy link
Copy Markdown
Contributor

Para transformar um texto em imagem era necessário calcular o tamanho que a imagem que irá conter o texto, dessa forma o texto fica corretamente contido nela. No entanto, internamente a função que desenha o texto na imagem faz exatamente a mesma coisa, ou seja, o tempo para calcular as dimensões da imagem estava duplicado. Resolvi esse problema ao pegar a imagem (mask) que representava o texto e para desenhar, usei funções mais internas do pillow. Só isso reduziu quase pela metade o tempo gasto.
Outra melhoria foi baixar todos os emojis do https://github.com/twitter/twemoji e mapeá-los usando os códigos unicode correspondentes. Com isso ao invés de trabalhar com uma font, uma operação custosa, dado que isso é feito internamente, passamos a fazer isso de forma direta. Essa melhoria reduziu consideravelmente o tempo de execução do algoritmo.
Compactei todos os emojis no arquivo compressed_pngs.dat para não poluir o git/github, descompactando-os em runtime.

O tradeoff é mais velocidade em troca de mais memória.

@luiz-meireles luiz-meireles force-pushed the refactor-emoji-suport branch from 5d69d52 to eb2551b Compare March 27, 2022 02:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant