Web ページ上で動的に更新される画像がよく見られますが、最も一般的なのは株価 K 線チャートです。この記事では、簡単な例を使用して、JSP 経由で JavaBean を呼び出して Web ページ上にヒストグラムを動的に生成する方法を示します。 。
背景: 最近、統計局のプロジェクトを開発していたとき、Web ページ上で画像を動的に生成するという問題に取り組み、1 日かかり、最終的に解決しました。将来同じ問題が発生する場合は、今度はそうします 設計アイデアとソースコードは公開され、誰もが共有できます。次のコードは Windows 2000 で正常にテストされ、Web アプリケーション サーバーは Allaire の Jrun3.0 を使用しています。
ステップ 1: jpg ファイルを生成する Java Bean を作成する
ソース プログラムは次のとおりです。
//画像を生成する Java Bean。
//著者: 崔冠宇
//日付:2001-08-24
java.io.* をインポートします。
java.util.* をインポートします。
com.sun.image.codec.jpeg.* をインポートします。
java.awt.image.* をインポートします。
インポート java.awt.*
;
BufferedImage イメージ。
public void createImage(String fileLocation) {
試す {
FileOutputStream fos = 新しい FileOutputStream(fileLocation);
BufferedOutputStream bos = new BufferedOutputStream(fos);
JPEGImageEncoder エンコーダ = JPEGCodec.createJPEGEncoder(bos);
エンコーダー.エンコード(画像);
bos.close();
} catch(例外 e) {
System.out.println(e);
}
public void graphicsGeneration(int h1,int h2,int h3,int h4,int h5) {
final
int X=10;
int imageWidth = 300; //画像の幅 int imageHeight = 300; //画像の高さ int columnHeight=200; //列の最大の高
さchartGraphics = 新しい ChartGraphics();
chartGraphics.image = new BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
グラフィックス グラフィックス = chartGraphics.image.getGraphics();
グラフィックス.setColor(Color.white);
graphics.fillRect(0,0,imageWidth,imageHeight);
グラフィックス.setColor(Color.red);
graphics.drawRect(X+1*columnWidth、columnHeight-h1、columnWidth、h1);
graphics.drawRect(X+2*columnWidth、columnHeight-h2、columnWidth、h2);
graphics.drawRect(X+3*columnWidth、columnHeight-h3、columnWidth、h3);
graphics.drawRect(X+4*columnWidth、columnHeight-h4、columnWidth、h4);
graphics.drawRect(X+5*columnWidth、columnHeight-h5、columnWidth、h5);
chartGraphics.createImage("D:\temp\chart.jpg");
}
}
説明: createImage(String fileLocation) メソッドは、JPG 画像の作成に使用されます。パラメーター fileLocation は、
コンテンツの描画に使用されます
。画像のパラメータ h1...h5 各四角形の高さのステップ 2
: テキスト ファイルからデータを読み取るための別の Java Bean を作成します (各四角形の高さ)。実際のアプリケーションでは、データは Oracle に保存されます。
ソースプログラムは以下のとおりです。
//
データ用のテキストファイル Java Bean を読み込みます。
//著者: 崔冠宇
//日付:2001-08-24
java.io.* をインポートします。
パブリック クラス GetData {
int heightArray[] = 新しい int[5];
public int[] getHightArray() {
試す {
RandomAccessFile randomAccessFile = new RandomAccessFile ("d:\temp\ColumnHeightArray.txt","r");
for (int i=0;i<5;i++)
{
heightArray[i] = Integer.parseInt(randomAccessFile.readLine());
}
}
catch(例外 e) {
System.out.println(e);
}
heightArray を返します。
}
説明
: getHightArray() は、テキストからデータを読み取り、テキスト内の String 型を int 型に変換し、配列型として返すために使用されます。
ステップ 3: 次のように JSP ファイル ソース
プログラムを作成します。
<%@ page import="ChartGraphics" %>
<%@ ページインポート="GetData" %>
<jsp:useBean id="cg" class="ChartGraphics"/>
<jsp:useBean id="gd" class="GetData"/>
<%!
int height[]=new int[5];
%>
<%
高さ=gd.getHightArray();
cg.graphicsGeneration(高さ[0],高さ[1],高さ[2],高さ[3],高さ[4]);
%>
<html>
<本文>
<img src="d:tempchart.jpg"></img>
</本文>
</html>
説明: JSP は、まず Bean (GetData..class) を呼び出してファイル内のデータを読み取り、次に Bean (ChartGraphics.class) を呼び出して画像を生成し、最後に画像を表示します。
結論: テキスト (ColumnHeightArray.txt) のデータはいつでも変更される可能性があるため、生成される画像内の 5 つの四角形の高さもそれに応じて変更され、この設計アイデアを使用して画像を動的に生成することもできます。ウェブサイト投票システム。