Descobrir a largura real de uma string

1 resposta
FelipeBValio

Olá. Estou tento problemas em descobrir a largura em pixels de uma string. No java existe uma infinidade de métodos do tipo stringWidth() e getStringBounds() que posso chamar de classes como Font, Graphics, FontMetrics etc.

O problema é que estes métodos não retornam a largura de um caracter ou string. Eles simplesmente retornam a largura usada para espaçar dois caracteres consecutivos. Isso torna-se um problema quando um caracter invade o espaço de outro caracter. Isso acontece em fontes muito estilisadas ou em itálico.

Eu preciso de um método que me dê a largura total em pixels que é necessário para armazenar um caracter em uma imagem.

Em anexo estou enviando a imagem de um caracter F que está me dando trabalho. Ele possui 32 pixels de largura, embora qualquer método para cômputo da largura sempre me retorna 10.

1 Resposta

T

Não sei se isto ajuda (obviamente não fiz nenhum teste, só usei o velho e bom Google)

http://java.sun.com/products/java-media/2D/reference/faqs/index.html#Q_What_is_the_difference_between

Veja esta classe:

http://download.oracle.com/javase/6/docs/api/java/awt/font/TextLayout.html

e em particular,

http://download.oracle.com/javase/6/docs/api/java/awt/font/TextLayout.html#getPixelBounds(java.awt.font.FontRenderContext,%20float,%20float)

Criado 31 de janeiro de 2011
Ultima resposta 31 de jan. de 2011
Respostas 1
Participantes 2