바이트 배열로 저장된 이미지가 포함 된 SQL 데이터베이스가 있습니다. 몇 가지 검색을 해본 결과 JSF 페이지에 사용할 수있는 이미지 유형으로 변환하는 방법을 많이 찾지 못했습니다. 어떤 도움이라도 대단히 감사하겠습니다!바이트 배열을 이미지로 변환하는 방법
미리 감사드립니다.
(JSF 2.0을 사용)바이트 배열로 저장된 이미지가 포함 된 SQL 데이터베이스가 있습니다. 몇 가지 검색을 해본 결과 JSF 페이지에 사용할 수있는 이미지 유형으로 변환하는 방법을 많이 찾지 못했습니다. 어떤 도움이라도 대단히 감사하겠습니다!바이트 배열을 이미지로 변환하는 방법
미리 감사드립니다.
(JSF 2.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);
}
는 this과 비슷한 일을보십시오.
이것은 실제 작동하지는 않지만 데이터베이스에 저장된 이미지를 동적으로 표시하는 방법을 설명합니다. 귀하의 JSF 페이지에서
@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());
}
}
그에 따라 서블릿 참조 할 수 있습니다 :
을 당신은 이미지처럼 동작 (당신이이 스트럿 작용 정도있을 수 있습니다 사용하는 프레임 워크에 따라) 서블릿을 만들어야합니다<img src=".../images/image1234" />
희망이 도움이됩니다.
예 정말 고마워요! – cdub
이미지가 ByteArray로 변환 된 방법에 따라 달라집니다. – Nivas
적절한 크기의 java.awt.image.BufferedImage를 생성하고, 바이트 그룹을 java.awt.Color 객체로 변환하고, Color 객체의 getRGB() 메소드를 사용하는 코드를 작성해 주시겠습니까? RGB 값을 가져 와서 BufferedImage의 setRGB() 메소드를 제공합니까? – compman
나는 'image logo'와 같은 것을 시도했다. EventDTO 이벤트; logo = toolkit.createImage (event.getLogo()); ' – cdub