gpt4 book ai didi

java - HBase - Playframework 获取 byte[] 值作为图像并将其显示在网站上

转载 作者:行者123 更新时间:2023-12-02 07:42:08 28 4
gpt4 key购买 nike

我正在开发 Play Framework 2.2.6、HBase 0.94.27 和 Solr 5.5.0(我没有在问题中显示任何 solr 代码。)。我正在尝试将 pdf 的第一页渲染为图像,并在搜索列表中显示该图像,如 amazonebay做。我首先解析图像并将其转换为 byte[] 以将其存储在 HBase 中。

我可以成功地将渲染图像索引为 HBase 中的字节,但无法在 html 端显示它。我收到错误:发现错误:javax.imageio.IIOException:无法读取输入文件!
.

程序将第一页渲染为图像,并将其转换为 byte[] byteImage 并在 HBase 中索引该字节变量。

搜索部分:

final static List<Searching> searchList = new ArrayList<Searching>();
//Searching class has string variables for title, content, number of pages and picture.
searchList.clear();
Form<Searching> filledForm = searchForm.bindFromRequest();
Searching searched = filledForm.get();

try {
HTable hTable = new HTable(hConn.config, "books");
Get g = new Get(Bytes.toBytes(searched.outputId));
g.addColumn(Bytes.toBytes("picture"), Bytes.toBytes("raw"));
org.apache.hadoop.hbase.client.Result result = hTable.get(g);
if (result.containsColumn(Bytes.toBytes("picture"), Bytes.toBytes("raw"))) {
byte[] byteOutputPicture = result.getNoVersionMap().get(Bytes.toBytes("picture")).get(Bytes.toBytes("raw"));
BufferedImage image = ImageIO.read(new File(byteOutputPicture+".png"));
java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
byte[] res=baos.toByteArray();
searched.outputPicture = com.sun.org.apache.xerces.internal.impl.dv.util.Base64.encode(baos.toByteArray());
//outputPicture is a String variable in Searching class.
}

searchList.add(searched);
hTable.close();
} catch (Exception e) {
System.out.println("Error found: " + e);
}

搜索.scala.html:

@(searchList: List[Searching])
...

<body>
@for(search <- searchList) {
<img src="data:image/png;base64,@search.outputPicture" alt="IMG">
}
</body>

更新1:我根据this website更改了html端并添加了一些代码,但我仍然收到Error found: java.lang.NullPointerException。我无法确定错误从何而来,因为程序以某种方式停止了。

更新2:更改一些代码后,出现新错误:Error found: javax.imageio.IIOException: Can't read input file!

最佳答案

我发现我需要在 read() 函数中使用 ByteArrayInputStream() 而不是 File()

Result on my web page

关于java - HBase - Playframework 获取 byte[] 值作为图像并将其显示在网站上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36747253/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com