package be.nikiroo.jvcard.resources;
+import java.awt.Image;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.Normalizer;
import java.util.Date;
import java.util.regex.Pattern;
+import javax.imageio.ImageIO;
+import javax.xml.bind.DatatypeConverter;
+
import com.googlecode.lanterna.gui2.LinearLayout.Alignment;
public class StringUtils {
*/
static public String padString(String text, int width, boolean cut,
Alignment align) {
-
+
if (width >= 0) {
if (text == null)
text = "";
}
}
+ /**
+ * Convert the given {@link Image} object into a Base64 representation of
+ * the same {@link Image}. object.
+ *
+ * @param image
+ * the {@link Image} object to convert
+ *
+ * @return the Base64 representation
+ *
+ * @throws IOException
+ * in case of IO error
+ */
+ static public String fromImage(BufferedImage image) throws IOException {
+ String imageString = null;
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+ ImageIO.write(image, "jpeg", out);
+ byte[] imageBytes = out.toByteArray();
+
+ imageString = DatatypeConverter.printBase64Binary(imageBytes);
+
+ out.close();
+
+ return imageString;
+ }
+
+ /**
+ * Convert the given {@link File} image into a Base64 representation of the
+ * same {@link File}.
+ *
+ * @param file
+ * the {@link File} image to convert
+ *
+ * @return the Base64 representation
+ *
+ * @throws IOException
+ * in case of IO error
+ */
+ static public String fromImage(File file) throws IOException {
+ String fileString = null;
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+ byte[] buf = new byte[8192];
+ InputStream in = new FileInputStream(file);
+
+ int c = 0;
+ while ((c = in.read(buf, 0, buf.length)) > 0) {
+ out.write(buf, 0, c);
+ }
+ out.flush();
+ in.close();
+
+ fileString = DatatypeConverter.printBase64Binary(out.toByteArray());
+ out.close();
+
+ return fileString;
+ }
+
+ /**
+ * Convert the given Base64 representation of an image into an {@link Image}
+ * object.
+ *
+ * @param b64data
+ * the {@link Image} in Base64 format
+ *
+ * @return the {@link Image} object
+ *
+ * @throws IOException
+ * in case of IO error
+ */
+ static public BufferedImage toImage(String b64data) throws IOException {
+ BufferedImage image = ImageIO.read(new ByteArrayInputStream(
+ DatatypeConverter.parseBase64Binary(b64data)));
+ image.toString();
+ return image;
+ }
+
/**
* Return a hash of the given {@link String}.
*