Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jakarta ee 如何将字节数组转换为图像_Jakarta Ee_Jsf 2 - Fatal编程技术网

Jakarta ee 如何将字节数组转换为图像

Jakarta ee 如何将字节数组转换为图像,jakarta-ee,jsf-2,Jakarta Ee,Jsf 2,我有一个SQL数据库,其中包含存储为字节数组的图像。我做了一些搜索,并没有找到多少关于如何将这些转换为JSF页面的可用图像类型的信息。任何帮助都将不胜感激 提前谢谢 (使用JSF2.0)尝试做类似的事情。只需创建一个控制器,输出正确的媒体类型(image/*),并输出字节。没有必要转换任何内容。如果要处理图像,则可以使用ImageIO.read对其进行转换。但是从你的问题来看,听起来你只是想显示图像 public void doGet(HttpServletRequest req, HttpSe

我有一个SQL数据库,其中包含存储为字节数组的图像。我做了一些搜索,并没有找到多少关于如何将这些转换为JSF页面的可用图像类型的信息。任何帮助都将不胜感激

提前谢谢


(使用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/*)并输出字节的控制器”的额外解释。请看这个示例。应该从数据库中读取,而不是从文件中读取。