aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/DocumentConverter.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-14 12:49:54 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-14 12:49:54 +0000
commit29d3c2477d438f6c69d16188e75664fdc27655d5 (patch)
treec6e8efa5ebfef7524710af55eb1385850c97d626 /src/main/java/org/zwobble/mammoth/DocumentConverter.java
parent22b699c4351a3eadc92b3ffb690b64a7ab903f1f (diff)
Encode images as base64
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/DocumentConverter.java')
-rw-r--r--src/main/java/org/zwobble/mammoth/DocumentConverter.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/mammoth/DocumentConverter.java b/src/main/java/org/zwobble/mammoth/DocumentConverter.java
index dce76ad..da10324 100644
--- a/src/main/java/org/zwobble/mammoth/DocumentConverter.java
+++ b/src/main/java/org/zwobble/mammoth/DocumentConverter.java
@@ -1,9 +1,12 @@
package org.zwobble.mammoth;
+import com.google.common.io.ByteStreams;
import org.zwobble.mammoth.documents.*;
import org.zwobble.mammoth.html.Html;
import org.zwobble.mammoth.html.HtmlNode;
+import java.io.IOException;
+import java.util.Base64;
import java.util.List;
import java.util.Map;
@@ -127,7 +130,19 @@ public class DocumentConverter {
@Override
public List<HtmlNode> visit(Image image) {
- throw new UnsupportedOperationException();
+ // TODO: handle empty content type
+ return image.getContentType()
+ .map(contentType -> {
+ try {
+ String base64 = Base64.getEncoder().encodeToString(ByteStreams.toByteArray(image.open()));
+ String src = "data:" + contentType + ";base64," + base64;
+ return list(Html.selfClosingElement("img", map("src", src)));
+ } catch (IOException exception) {
+ // TODO: return a result with a warning
+ throw new RuntimeException(exception);
+ }
+ })
+ .orElse(list());
}
});
}