aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-04-16 12:02:19 +0100
committerMichael Williamson <mike@zwobble.org>2016-04-16 12:02:19 +0100
commit07209bbf7b6b4da453f40c3431c9d305bf282130 (patch)
treebdae98d3ea5fd9e4c05bf84a65f9842f500a3aff /src/main
parent52c837b2413c748dbde97ad2f8631243a837079a (diff)
Move Base64 encoding into its own type
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java11
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/util/Base64Encoding.java13
2 files changed, 22 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java b/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java
index deab0d3..268d942 100644
--- a/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java
+++ b/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java
@@ -6,14 +6,15 @@ import org.zwobble.mammoth.internal.html.HtmlNode;
import org.zwobble.mammoth.internal.results.InternalResult;
import org.zwobble.mammoth.internal.styles.HtmlPath;
import org.zwobble.mammoth.internal.styles.StyleMap;
+import org.zwobble.mammoth.internal.util.Base64Encoding;
import org.zwobble.mammoth.internal.util.Lists;
import java.io.IOException;
+import java.io.InputStream;
import java.util.*;
import static org.zwobble.mammoth.internal.util.Lists.*;
import static org.zwobble.mammoth.internal.util.Maps.map;
-import static org.zwobble.mammoth.internal.util.Streams.toByteArray;
public class DocumentToHtml {
public static InternalResult<List<HtmlNode>> convertToHtml(Document document, DocumentToHtmlOptions options) {
@@ -207,7 +208,7 @@ public class DocumentToHtml {
try {
Map<String, String> attributes = new HashMap<>();
- String base64 = Base64.getEncoder().encodeToString(toByteArray(image.open()));
+ String base64 = imageToBase64(image);
String src = "data:" + contentType + ";base64," + base64;
attributes.put("src", src);
@@ -224,6 +225,12 @@ public class DocumentToHtml {
});
}
+ private static String imageToBase64(Image image) throws IOException {
+ try (InputStream stream = image.open()) {
+ return Base64Encoding.streamToBase64(stream);
+ }
+ }
+
private String generateNoteHtmlId(NoteType noteType, String noteId) {
return generateId(noteTypeToIdFragment(noteType) + "-" + noteId);
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Base64Encoding.java b/src/main/java/org/zwobble/mammoth/internal/util/Base64Encoding.java
new file mode 100644
index 0000000..0f829c2
--- /dev/null
+++ b/src/main/java/org/zwobble/mammoth/internal/util/Base64Encoding.java
@@ -0,0 +1,13 @@
+package org.zwobble.mammoth.internal.util;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Base64;
+
+import static org.zwobble.mammoth.internal.util.Streams.toByteArray;
+
+public class Base64Encoding {
+ public static String streamToBase64(InputStream stream) throws IOException {
+ return Base64.getEncoder().encodeToString(toByteArray(stream));
+ }
+}