How to calculate width of a String
in pixels in Java? For e.g., I have a string say "Hello World!". What is its length in pixels, also considering its font family and size?
In short: the question depends on the framework you are using. For example, if you are using AWT, and have a Graphics
object graphics
, and a Font
object font
you can do the following:
FontMetrics metrics = graphics.getFontMetrics(font);
int width = metrics.stringWidth("Hello world!");
Check out this for more information.
You can try something like this
Graphics2D g2d = ...
Font font = ...
Rectangle2D r = font.getStringBounds("hello world!", g2d.getFontRenderContext());
System.out.println("(" + r.getWidth() + ", " + r.getHeight() + ")");
Refer this doc, may help you.
There are a number of ways to achieve what you want, based on what it is you want to achieve, for example...
BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = img.createGraphics();
FontMetrics fm = g2d.getFontMetrics();
System.out.println(fm.stringWidth("This is a simple test"));
g2d.dispose();
But this only has relevence for the BufferedImage
and it's Graphics
context, it will not translate back to say, something like a screen or printer.
However, so long as you have a Graphics
context, you can achieve the same result.
This example, obviously, uses the default font installed for the Graphics
context, which you can change if you need to...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With