2012-04-24 10 views
3

私はデータベースからBLOBイメージを読み込み、そのイメージをJSPページに表示したいコードを記述しています。グーグルによるBufferedImageをimgに変換する際の問題

私は...バイトが[]バッファリングされたイメージ

に変換することができますが、どのように私は、JSPページにバッファリングされたイメージを使用することができ、解決策を見つけますか?

+0

doGet実装が行きます。これは、全く異なる目的(画像のサイズ変更、傾き、切り抜きなど)を操作できるようになります。単にtusarの返答として 'byte []'を 'response.getOutputStream()'に直接書きます。 – BalusC

+0

私はサーブレットを使用していません... SpringとHibernateを使用しています... Springコントローラを使用しているときにjspでresponse.getOutputStreamを使用する方法を教えてください。 – JOHND

+0

@BalusC:BufferedImageに関する情報をお寄せいただきありがとうございます。 – JOHND

答えて

2

最も簡単なのは、サーブレットまたは別の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"> 
2

私はサーブレット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); 
} 
+0

あなたはそんなに – JOHND

関連する問題