From fe7930ad0f446e966b5a5153b6b4d7d017bdca89 Mon Sep 17 00:00:00 2001 From: andrewlalis Date: Mon, 7 Aug 2017 15:55:30 +0200 Subject: [PATCH] changed to 1.3 --- pom.xml | 2 +- .../net/agspace/TengwarImageGenerator.java | 25 ++++++++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 6cb5f0c..0571039 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.github.andrewlalis TengwarTranslatorLibrary - 1.3 + 1.3.1 diff --git a/src/main/java/net/agspace/TengwarImageGenerator.java b/src/main/java/net/agspace/TengwarImageGenerator.java index 7a106f3..8de585d 100644 --- a/src/main/java/net/agspace/TengwarImageGenerator.java +++ b/src/main/java/net/agspace/TengwarImageGenerator.java @@ -12,6 +12,18 @@ import java.io.IOException; */ public class TengwarImageGenerator { + /** + * Overloaded method for a simpler image generator, using white-on-black text and neither bold nor italics. + * @param tengwarText The string of tengwar text to transform into an image. + * @param maxWidth The maximum width, in pixels, that the generated image can be. + * @param fontSize The size of the font to use. + * @param filePath The path of the file to save the generated image to. + * @return An Image Object containing the drawn text. + */ + public static File generateImage(String tengwarText, int maxWidth, float fontSize, String filePath){ + return generateImage(tengwarText, maxWidth, fontSize, false, false, filePath, Color.black, Color.white); + } + /** * Generates an image of some tengwar text. The text is wrapped so that each line may not take up more than * {@code maxWidth} pixels. @@ -20,16 +32,20 @@ public class TengwarImageGenerator { * @param fontSize The size of the font to use. * @param bold Whether or not the font should be bold. * @param italic Whether or not the font should be italic. + * @param filepath The path of the file to save the generated image to. + * @param backgroundColor The background color of the image. + * @param foregroundColor The foreground color of the image. * @return An Image Object containing the drawn text. */ - public static File generateImage(String tengwarText, int maxWidth, float fontSize, boolean bold, boolean italic, String filepath) { + public static File generateImage(String tengwarText, int maxWidth, float fontSize, boolean bold, boolean italic, String filepath, Color backgroundColor, Color foregroundColor) { BufferedImage bufferedImage = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = bufferedImage.createGraphics(); Font tengwarFont = getTengwarFont(bold, italic, fontSize); graphics.setFont(tengwarFont); FontMetrics fm = graphics.getFontMetrics(); - int width = fm.stringWidth(tengwarText); + //Set width of the image, either max width or the string width itself plus some padding space. + int width = fm.stringWidth(tengwarText) + 10; if (width > maxWidth){ width = maxWidth; } @@ -41,11 +57,12 @@ public class TengwarImageGenerator { bufferedImage = new BufferedImage(width, (height*lines.length)+fm.getMaxDescent(), BufferedImage.TYPE_INT_RGB); graphics = bufferedImage.createGraphics(); - graphics.setBackground(new Color(54, 57, 62)); + //graphics.setBackground(new Color(54, 57, 62)); Color for discord background. + graphics.setBackground(backgroundColor); graphics.clearRect(0, 0, width, height*lines.length+fm.getMaxDescent()); graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - graphics.setColor(Color.white); + graphics.setColor(foregroundColor); graphics.setFont(tengwarFont); for (int i = 0; i < lines.length; i++){ graphics.drawString(lines[i], 5, height*(i+1));