Jakarta ee 如何将字节数组转换为图像
我有一个SQL数据库,其中包含存储为字节数组的图像。我做了一些搜索,并没有找到多少关于如何将这些转换为JSF页面的可用图像类型的信息。任何帮助都将不胜感激 提前谢谢Jakarta ee 如何将字节数组转换为图像,jakarta-ee,jsf-2,Jakarta Ee,Jsf 2,我有一个SQL数据库,其中包含存储为字节数组的图像。我做了一些搜索,并没有找到多少关于如何将这些转换为JSF页面的可用图像类型的信息。任何帮助都将不胜感激 提前谢谢 (使用JSF2.0)尝试做类似的事情。只需创建一个控制器,输出正确的媒体类型(image/*),并输出字节。没有必要转换任何内容。如果要处理图像,则可以使用ImageIO.read对其进行转换。但是从你的问题来看,听起来你只是想显示图像 public void doGet(HttpServletRequest req, HttpSe
(使用JSF2.0)尝试做类似的事情。只需创建一个控制器,输出正确的媒体类型
(image/*)
,并输出字节。没有必要转换任何内容。如果要处理图像,则可以使用ImageIO.read
对其进行转换。但是从你的问题来看,听起来你只是想显示图像
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
byte[] bytes = ...
resp.setContentType(mimeType);
OutputStream out = resp.getOutputStream();
out.write(bytes);
}
这不是一个工作示例,但它概述了如何动态显示存储在数据库中的图像的方法。您必须创建一个servlet(取决于您使用的框架,它可能是struts操作等),其行为类似于图像:
@WebServlet("/images/*")
public class ImageServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
/* this is pseudo code, retrieve the image and its metadata from database.
* Maybe you do not want to use a parameter but a RESTful approach, e.g. '/images/image1234'.
*/
MyImage myimg = MyDatabase.getImage(request.getParameter("imageID"));
/* you may want to support different encodings (e.g. JPG, PNG, TIFF) */
response.setContentType(myimg.getContentType());
/* obtain output stream and stream the bytes back to the client */
OutputStream out = response.getOutputStream();
/* stream it, here you have different options, finally close the stream */
out.write(myimg.getBytes());
}
}
在JSF页面中,您必须相应地引用servlet:
<img src=".../images/image1234" />
希望这能有所帮助。这取决于图像如何转换为ByteArray。编写一段代码,创建大小合适的java.awt.image.buffereImage,将字节组转换为java.awt.Color对象,并使用getRGB()是否有效方法获取一个RGB值,以提供BuffereImage的setRGB()方法?我尝试了类似“图像徽标”的方法;事件到事件;logo=toolkit.createImage(event.getLogo());'好的,我为这一混乱道歉,是的,我只是想展示它,任何指向任何材料的指针都会有帮助。非常感谢您抽出时间!或者是关于“创建一个输出正确媒体类型(image/*)并输出字节的控制器”的额外解释。请看这个示例。应该从数据库中读取,而不是从文件中读取。