私はデータベースからBLOBイメージを読み込み、そのイメージをJSPページに表示したいコードを記述しています。グーグルによるBufferedImageをimgに変換する際の問題
私は...バイトが[]バッファリングされたイメージ
に変換することができますが、どのように私は、JSPページにバッファリングされたイメージを使用することができ、解決策を見つけますか?
私はデータベースからBLOBイメージを読み込み、そのイメージをJSPページに表示したいコードを記述しています。グーグルによるBufferedImageをimgに変換する際の問題
私は...バイトが[]バッファリングされたイメージ
に変換することができますが、どのように私は、JSPページにバッファリングされたイメージを使用することができ、解決策を見つけますか?
最も簡単なのは、サーブレットまたは別のjspで画像を送信することです。
JSPを使用する場合は、HTML(または空白行)なしでバイナリを送信するだけで十分です。例えば、次のように:
response.setContentType("image/png");
OutputStream sos = response.getOutputStream();
BufferedImage myImage = stuff.getImage(request.getParameter("id"));
ImageIO.write(myImage, "png", sos);
sos.flush();
sos.close();
(ここjavax.imageio.ImageIOを使用して)
その後は、単にこのように画像を使用することができます。
<img src="myservlet.jsp?id=somestuff">
私はサーブレットImageProvider
<servlet>
<servlet-name>showMyImage</servlet-name>
<servlet-class>com.photo.gallery.ImageProvider</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>showMyImage</servlet-name>
<url-pattern>/showMyImage</url-pattern>
</servlet-mapping>
ここでは、次のようなJSPページで使用します。
<img src="showMyImage?imageFimeName=flowers.jpg"/>
ここであなたは全く `BufferedImage`を必要としないImageProvider
public void doGet(HttpServletRequest request, HttpServletResponse response) {
/*Now you have the byte[] array by some way...
* Lets call it imageBytes[] */
response.setContentType("image/jpeg");
response.setContentLength(imageBytes.length);
response.getOutputStream().write(imageBytes);
}
あなたはそんなに – JOHND
の
doGet
実装が行きます。これは、全く異なる目的(画像のサイズ変更、傾き、切り抜きなど)を操作できるようになります。単にtusarの返答として 'byte []'を 'response.getOutputStream()'に直接書きます。 – BalusC私はサーブレットを使用していません... SpringとHibernateを使用しています... Springコントローラを使用しているときにjspでresponse.getOutputStreamを使用する方法を教えてください。 – JOHND
@BalusC:BufferedImageに関する情報をお寄せいただきありがとうございます。 – JOHND