ホームページ >バックエンド開発 >PHPチュートリアル >JSP のヒント: 動的画像の送信_PHP チュートリアル

JSP のヒント: 動的画像の送信_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:04:46837ブラウズ

動的に生成された画像をページ (またはサーブレット) に送信しますか? このヒントでは、その方法を示します。ここでコードを実行するには、JSP 1.1 をサポートする Tomcat またはその他の Web サーバーが必要です。
Web ページが image/jpeg (またはその他の画像形式) MIME タイプで送信されると、ブラウザはその返された結果を画像として扱い、ブラウザはその画像をページの一部として、または完全に画像自体として表示します。 。 JSP ページの MIME タイプを設定するには、ページの contentType 属性を設定する必要があります:

次に、動的画像を描画するための BufferedImage を作成する必要があります:
BufferedImage image = new BufferedImage(width, height, BufferedImage. TYPE_INT_RGB);
BufferedImage を作成した後、描画用のグラフィックス環境、Graphics または Graphics2D オブジェクトを取得する必要があります。
Graphics g = image.getGraphics();
// または
Graphics2d g2d = image.createGraphics();これから画像コンテンツを描画できるようになります。グラフィックス環境に描画すると、BufferedImage に描画されます。最初は画像はすべて黒なので、画像を希望の背景色で塗りつぶすことをお勧めします。画像の描画が完了したら、グラフィック環境を破棄する必要があります:
g.dispose();
// または
g2d.dispose();

画像の描画が完了したら、応答としてその画像を返します。 com.sun.image.codec.jpeg パッケージの非標準 JPEGImageEncoder クラスを使用してイメージをエンコードできます。JDK1.4 を使用している場合は、標準の ImageIO クラスを使用できます。 JPEGImageEncoder を使用する場合、ServletResponse から ServletOutputStream を取得する必要があり、暗黙的な JSP 出力変数 out を使用することはできません。
ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
// または
ImageIO.write(image, "JPEG", out);
以下はすべての可能なソリューション (g.dispose(); または g2d.dispose(); など) から選択された完全な例。この例では、Graphics オブジェクトを使用してランダムなポリゴンを描画します。画像は、設定できる JPEGImageEncoder を通じて描画されます。ポリゴン内の頂点の数は、より複雑な形状、つまりより多くの頂点とエッジを持ちます。
この例を実行するには、「
」の間に jsp コードを image.jsp というファイルに配置します。そのファイルを Web サーバーが見つけられる場所 (Tomcat の場合は ROOT) に置き、Tomcat を起動します。 、 http://localhost:8080/image.jsp にアクセスしてください <%@ page contentType="image/jpeg"


http://www.bkjia.com/PHPjc/445187.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/445187.html技術記事動的に生成された画像をページ (またはサーブレット) に送信するには、このヒントでその方法を示します。ここでコードを実行するには、JSP 1.1 をサポートする Tomcat またはその他の Web サーバーが必要です。 いつ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。