2013-04-26 4 views
0

데이터베이스에서 가져 오는 JSP 페이지에서 그림의 크기를 설정하려고합니다.데이터베이스에 저장된 JSP 페이지의 그림 크기 조정

이미지를 제대로 표시 할 수 있지만 페이지 전체가 채워집니다.

누구나 사진의 난 내 JSP에이 코드가 있어요

덕분에 여기

크기를 설정하는 방법을 알고 :

<% 

Blob image = null; 
byte[] imgData = null; 
Connection con; 
String url="jdbc:mysql://localhost:3306/comshopDatabase"; 
String uName="root"; 
String pwd=""; 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    con=DriverManager.getConnection(url,uName,pwd); 
    String sql="Select image from images WHERE id = '1' "; 
    PreparedStatement stmt=con.prepareStatement(sql); 

    ResultSet resultset=stmt.executeQuery(); 
while(resultset.next()) 
{ 

    Blob bl = resultset.getBlob("image"); 
    byte[] pict = bl.getBytes(1,(int)bl.length()); 
    response.setContentType("image/jpg"); 
    OutputStream o = response.getOutputStream(); 



%> 
<TABLE BORDER="1"> 
<TR> 
<TH>picture</TH> 
</TR> 
<TR> 


<td>Image</td><td><%o.write(pict);%></td> 
    <%o.flush(); 
    o.close();%> 

<TD> <%= resultset.getString(2) %> </TD> 
<TD><%= resultset.getString(3) %></TD> 
</TR> 
</TABLE> 
<BR> 
<% 
o.flush(); 
o.close(); 
} 
%> 
+0

이 끔찍한 방법입니다 :

다음은 간단한 예입니다. '서블릿 (Servlet) '을 사용하십시오. –

+0

나는 서블릿을 upoloading,이 코드는 단지 표시를 테스트하는 것입니다 – d199224

답변

0

당신은 image scaling library을 사용할 수 있습니다를, 항아리 다운로드 할 수 있습니다 here.

int width =1200, height = 900; 
BufferedImage image = ImageIO.read(<sourceFile>);// You can use InputStream as well here, in place of source file 
BufferedImage thumbnail = Scalr.resize(image, Scalr.Method.SPEED, Scalr.Mode.FIT_TO_WIDTH, 
             width, height , Scalr.OP_ANTIALIAS); 
ImageIO.write(thumbnail, "jpg", new File(<destination file>)); // You can use OutputStream as well in place of destination file 
+0

내가 서블릿에 코드 의이 부분을 넣어 것이라고 BufferedImage image = ImageIO.read (); 나머지는 JSP로? – d199224

+1

이미지의 크기를 조정하려는 위치에이 코드를 삽입해야합니다. 이 코드를 몇 가지 유틸리티 클래스에 넣어 두는 것이 좋습니다. 서블릿에서'InputStream'을이 유틸리티 메소드로 전달하고 크기가 조정 된'OutputStream'을 돌려받습니다. – Apurv