2013-04-26 47 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'。 – 2013-04-26 13:28:36

+0

我有upoloading小服務程序,此代碼只是用於測試顯示 – d199224 2013-04-26 13:31:29

回答

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

我會把這部分代碼在servlet BufferedImage的圖像= ImageIO.read()中;然後在jsp中休息? – d199224 2013-04-26 13:33:15

+1

您應該將此代碼放在任何您想要重新調整圖像大小的位置。我建議你把這些代碼放在Utility類中。從servlet傳遞'InputStream'到這個實用程序方法並取回調整後的'OutputStream' – Apurv 2013-04-26 13:38:30

相關問題