Czy istnieje sposób obliczania długości łańcucha w pikselach, biorąc pod uwagę pewien obiekt java.awt.Font
, który nie korzysta z żadnych komponentów GUI?Długość łańcucha w pikselach w języku Java
12
A
Odpowiedz
10
który nie korzysta z żadnych komponentów GUI?
To zależy od tego, co masz na myśli. Zakładam, że masz na myśli, że chcesz to zrobić bez otrzymania HeadlessException
.
Najlepszy sposób jest z BufferedImage
. AFAIK, to nie rzuci HeadlessException
:
Font font = ... ;
BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
FontMetrics fm = img.getGraphics().getFontMetrics(font);
int width = fm.stringWidth("Your string");
Inny niż przy użyciu czegoś takiego, nie sądzę, jest to możliwe. Potrzebujesz kontekstu graficznego, aby utworzyć FontMetrics
i podać informacje o rozmiarze czcionki.
3
Można użyć obiektu Graphics2D
dostać granice czcionek (w tym szerokość):
Graphics2D g2d = ...
Font font = ...
Rectangle2D f = font.getStringBounds("hello world!", g2d.getFontRenderContext());
Ale to zależy od tego jak dostaniesz przedmiot Graphics2D
(na przykład z Image
).
2
Daje to dla mnie wynik (137,0, 15,09375). Nie mam pojęcia, jakie są jednostki, ale z pewnością wygląda to proporcjonalnie i nie używa bezpośrednio Graphics2D.
Font f = new Font("Ariel", Font.PLAIN, 12);
Rectangle2D r = f.getStringBounds("Hello World! Hello World!", new FontRenderContext(null, RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT, RenderingHints.VALUE_FRACTIONALMETRICS_DEFAULT));
System.out.println("(" + r.getWidth() + ", " + r.getHeight() + ")");
Powiązane problemy
- 1. Długość ciągu w pikselach
- 2. Uzyskaj długość łańcucha w pikselach za pomocą JavaScriptu
- 3. Jak obliczyć szerokość łańcucha w pikselach?
- 4. Dekodowanie łańcucha JSON w języku Java
- 5. Czy Java toLowerCase() zachowuje oryginalną długość łańcucha?
- 6. długość łańcucha znaków facebook
- 7. Niepoprawna długość łańcucha znaków
- 8. Maks. Długość łańcucha Apache Długość osiągnęła
- 9. Jak określić długość (w pikselach) ciągu renderowanego na stronie internetowej?
- 10. Jak filtrować w `sqlalchemy` przez długość łańcucha?
- 11. Jaka jest maksymalna długość łańcucha w PHP?
- 12. Jak uzyskać długość łańcucha w Perlu?
- 13. Jak uzyskać szerokość łańcucha w pikselach (/ jednostki logiczne)?
- 14. Błąd silnika renderowania Java w pikselach
- 15. Oblicz szerokość wyświetlania ciągu znaków w języku Java
- 16. Tworzenie instancji z łańcucha znaków w języku Java
- 17. Klucz z łańcucha znaków w języku Java RSA
- 18. Konwersja łańcucha znaków na tablicę "Character" w języku Java
- 19. Zamień podłańcuch łańcucha w języku szablonów prędkości
- 20. Jak znaleźć szerokość struny w języku C# (w pikselach)
- 21. Czyszczenie łańcucha znaków w java
- 22. Jak ustawić długość listy w języku Python
- 23. Parsowanie łańcucha XML w języku Python
- 24. Jak analizować negatywnie w języku Java w języku Java
- 25. Klon() w języku Java
- 26. Szerokość w pikselach tekstu/podpisu w Delphi 7
- 27. PHP - długość łańcucha zawierającego emotikony/znaki specjalne
- 28. Jaka jest długość haszowanego łańcucha z SHA512?
- 29. Jak mogę uzyskać długość pojedynczej jednostki na osi w matplotlib, w pikselach?
- 30. Opcje łańcuchowe w języku Java 8
Czy to dla czcionki Czcionki? – Link19
Zobacz także [tę odpowiedź] (http://stackoverflow.com/questions/6295084/cut-out-image-in-shape-of-text/6296381#6296381) dla używania 'GlyphVector'. Umieszcza ostateczny obraz w GUI, ale tylko po to, żeby go wyświetlić. –