X-Git-Url: http://git.nikiroo.be/?p=jvcard.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2FImageText.java;h=073315de8c499d08a12f01faaa63fa89c30ae84e;hp=b0232f7b798d023bba7fe0ef8f18f0dd00da7225;hb=ae22c2473f7203b8713dec1c1de532c312000d1e;hpb=20ce79bb39f98eacdf796f600dd175868ee31347 diff --git a/src/be/nikiroo/jvcard/tui/ImageText.java b/src/be/nikiroo/jvcard/tui/ImageText.java index b0232f7..073315d 100644 --- a/src/be/nikiroo/jvcard/tui/ImageText.java +++ b/src/be/nikiroo/jvcard/tui/ImageText.java @@ -23,6 +23,13 @@ public class ImageText { private Mode mode; private boolean invert; + /** + * Th rendering modes supported by this {@link ImageText} to convert + * {@link Image}s into text. + * + * @author niki + * + */ public enum Mode { /** * Use 5 different "colours" which are actually Unicode @@ -54,6 +61,19 @@ public class ImageText { ASCII, } + /** + * Create a new {@link ImageText} with the given parameters. Defaults to + * {@link Mode#DOUBLE_DITHERING} and no colour inversion. + * + * @param image + * the source {@link Image} + * @param size + * the final text size to target + */ + public ImageText(Image image, TerminalSize size) { + this(image, size, Mode.DOUBLE_DITHERING, false); + } + /** * Create a new {@link ImageText} with the given parameters. * @@ -63,10 +83,14 @@ public class ImageText { * the final text size to target * @param mode * the mode of conversion + * @param invert + * TRUE to invert colours rendering */ - public ImageText(Image image, TerminalSize size, Mode mode) { - setImage(image, size); + public ImageText(Image image, TerminalSize size, Mode mode, boolean invert) { + setImage(image); + setSize(size); setMode(mode); + setColorInvert(invert); } /** @@ -76,34 +100,21 @@ public class ImageText { * the new {@link Image} */ public void setImage(Image image) { - setImage(image, size); - } - - /** - * Change the source {@link Image}. - * - * @param size - * the size to use - */ - public void setImage(TerminalSize size) { - setImage(image, size); + this.text = null; + this.ready = false; + this.image = image; } /** - * Change the source {@link Image}. + * Change the target size of this {@link ImageText}. * - * @param image - * the new {@link Image} * @param size - * the size to use + * the new size */ - public void setImage(Image image, TerminalSize size) { + public void setSize(TerminalSize size) { this.text = null; this.ready = false; this.size = size; - if (image != null) { - this.image = image; - } } /** @@ -146,7 +157,8 @@ public class ImageText { */ public String getText() { if (text == null) { - if (image == null) + if (image == null || size == null || size.getColumns() == 0 + || size.getRows() == 0) return ""; int mult = 1; @@ -167,7 +179,7 @@ public class ImageText { int x = 0; int y = 0; - if (srcSize.getColumns() > srcSize.getRows()) { + if (srcSize.getColumns() < srcSize.getRows()) { double ratio = (double) size.getColumns() / (double) size.getRows(); ratio *= (double) srcSize.getRows()