Skip to content

Commit

Permalink
Added image conversion to Base64 in ThumbcacheParser
Browse files Browse the repository at this point in the history
  • Loading branch information
marcus6n committed Oct 18, 2024
1 parent cc3fdf5 commit d581755
Showing 1 changed file with 21 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,14 @@
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Base64;
import java.util.Set;

public class ThumbcacheParser extends AbstractParser {
Expand Down Expand Up @@ -64,19 +69,30 @@ private void recurseDir(DirectoryNode dir, EmbeddedDocumentExtractor extractor,
xhtml.startElement("div", "class", "thumbcache-entry");
xhtml.element("h1", entry.getName()); // Nome do arquivo

xhtml.startElement("div", "class", "thumbcache-entry-content");
try (InputStream stream = new DocumentInputStream((DocumentNode) entry)) {
// Extraímos o conteúdo incorporado do arquivo
extractor.parseEmbedded(stream, xhtml, entryData, true);
} catch (Exception e) {
BufferedImage image = ImageIO.read(stream);
if (image != null) {
// Converte a imagem para Base64
String base64Image = convertImageToBase64(image);
// Adiciona a imagem ao XHTML
xhtml.startElement("img", "src", "data:image/png;base64," + base64Image);
xhtml.endElement("img");
}
} catch (IOException e) {
xhtml.startElement("p");
xhtml.characters("Error processing document: " + e.getMessage());
xhtml.endElement("p");
}

xhtml.endElement("div"); // Fecha "thumbcache-entry-content"
xhtml.endElement("div"); // Fecha "thumbcache-entry"
}
}
}

private String convertImageToBase64(BufferedImage image) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
byte[] imageBytes = baos.toByteArray();
return Base64.getEncoder().encodeToString(imageBytes);
}
}

0 comments on commit d581755

Please sign in to comment.