우리는 종종 웹 페이지에서 동적으로 업데이트된 그림을 볼 수 있는데, 그 중 가장 일반적인 것은 주식 K-라인 차트입니다. 이 기사에서는 웹 페이지에서 동적으로 히스토그램을 생성하기 위해 JSP를 통해 JavaBean을 호출하는 방법을 보여주기 위해 간단한 예제를 사용하려고 합니다. .
배경: 최근 통계청을 위한 프로젝트를 개발할 때 웹 페이지에서 이미지를 동적으로 생성하는 문제에 참여했는데, 모든 사람이 문제를 접할 때 우회하지 않도록 돕기 위해 하루가 걸렸습니다. 앞으로도 같은 문제가 생길 것입니다. 디자인 아이디어와 소스 코드는 모두가 공유할 수 있도록 공개됩니다. 다음 코드는 Windows 2000에서 성공적으로 테스트되었으며 웹 응용 프로그램 서버는 Allaire의 Jrun3.0을 사용합니다.
1단계: Java Bean을 생성하여 jpg 파일을 생성합니다.
소스 프로그램은 다음과 같습니다.
//이미지를 생성하는 Java Bean
//저자: 최관우
//날짜:2001-08-24
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
공용 클래스 ChartGraphics {
버퍼링된 이미지 이미지;
공공 무효 createImage(문자열 파일 위치) {
노력하다 {
FileOutputStream fos = new FileOutputStream(fileLocation);
BufferedOutputStream bos = new BufferedOutputStream(fos);
JPEGImageEncoder 인코더 = JPEGCodec.createJPEGEncoder(bos);
인코더.인코드(이미지);
bos.close();
} catch(예외 e) {
System.out.println(e);
}
}
공개 무효 그래픽 생성(int h1,int h2,int h3,int h4,int h5) {
final int X=10;
int imageWidth = 300; //그림의 너비 int imageHeight = 300; //그림의 높이 int columnWidth=30; //열의 너비 int columnHeight=200; //열의 최대
높이 ChartGraphics = 새로운 ChartGraphics();
ChartGraphics.image = 새로운 BufferedImage(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
그래픽 그래픽 = ChartGraphics.image.getGraphics();
graphic.setColor(Color.white);
graphic.fillRect(0,0,imageWidth,imageHeight);
graphic.setColor(Color.red);
graphic.drawRect(X+1*columnWidth, 컬럼 높이-h1, 컬럼 폭, h1);
graphic.drawRect(X+2*columnWidth, 컬럼 높이-h2, 컬럼 폭, h2);
graphic.drawRect(X+3*columnWidth, columnHeight-h3, columnWidth, h3);
graphic.drawRect(X+4*columnWidth, 컬럼 높이-h4, 컬럼 폭, h4);
graphic.drawRect(X+5*columnWidth, columnHeight-h5, columnWidth, h5);
ChartGraphics.createImage("D:\temp\chart.jpg");
}
}
설명: createImage(String fileLocation) 메소드는 JPG 이미지를 생성하는 데 사용됩니다. fileLocation 매개변수는 파일 경로입니다.
graphicGeneration(int h1, int h2, int h3, int h4, int h5) 메소드는 콘텐츠를 그리는 데 사용됩니다. 매개변수 h1...h5 각 직사각형의 높이에 대한 2단계
: 텍스트 파일에서 데이터(각 직사각형의 높이)를 읽기 위해 다른 Java Bean을 생성합니다. 데이터베이스
소스 프로그램은 다음과 같습니다:
//데이터를 위한 텍스트 파일 Java Bean을 읽습니다.
//저자: 최관우
//날짜:2001-08-24
import java.io.*;
공개 클래스 GetData {
int heightArray[] = 새로운 int[5];
공개 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 파일
소스 프로그램을 생성합니다.
<%@ 페이지 가져오기="ChartGraphics" %>
<%@ 페이지 가져오기="GetData" %>
<jsp:useBean id="cg" class="ChartGraphics"/>
<jsp:useBean id="gd" class="GetData"/>
<%!
int 높이[]=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개 직사각형의 높이도 그에 따라 변경되므로 이 디자인 아이디어를 사용하여 이미지를 동적으로 생성할 수도 있습니다. 웹사이트 투표 시스템.