jsp中图片处理相关操作

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*,java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*"%>

<html>

<body>

<%

/*

drop table imagetable;

create table imagetable

(

nid int not null,

image blob,

primary key (nid)

)

type = InnoDB;

*/

/*

//================ 一 、将文件写入到数据库的大字段中begin=====================

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

String url ="jdbc:mysql://localhost:3306/test?user=root&password=eastsoftweb";

Connection conn= DriverManager.getConnection(url);

java.io.File file = new File("d:/temp/1.jpg");

FileInputStream is=new FileInputStream(file);

PreparedStatement stmt = conn.prepareStatement(

"INSERT INTO imagetable (nid,image)" +

"VALUES (?, ?)"); //预编译SQL语句

stmt.setInt(1, 1);

stmt.setBinaryStream(2, is,(int)file.length());

stmt.executeUpdate();

stmt.close();

is.close();

out.println("update end");

//===============将文件写入到数据库的大字段中end=========================

*/

/*

//====================== 二、jsp显示服务器硬盘图片示例 begin==============

FileInputStream is=new FileInputStream("d:/temp/1.JPG");

response.reset();

response.setContentType("image/jpeg");

ServletOutputStream sos = response.getOutputStream();

byte[] buffer = new byte[1024];

int len=0;

while((len=is.read(buffer))>0){

sos.write(buffer,0,len);

}

sos.flush();

sos.close();

//=======================jsp显示服务器硬盘图片示例 end===================

*/

//===================== 三、将数据库的大字段图片还原到本地,并在网页上显示begin==============

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

String url ="jdbc:mysql://localhost:3306/test?user=root&password=eastsoftweb";

Connection conn= DriverManager.getConnection(url);

java.io.File file = new File("d:/temp/db.jpg");

FileOutputStream os=new FileOutputStream(file);

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

ResultSet rs=stmt.executeQuery("select nid,image from imagetable where nid=1");

rs.next();

byte[] buffer=rs.getBytes(2);

stmt.close();

os.write(buffer);

os.flush();

os.close();

out.println("query end");

//网页上显示

response.reset();

response.setContentType("image/jpeg");

ServletOutputStream sos = response.getOutputStream();

sos.write(buffer);

sos.flush();

sos.close();

//======================将数据库的大字段图片还原到本地,并在网页上显示end===================

/*

//======================四、生成缩略图begin==============================

File file = new File("d:/temp/1.JPG");

String newurl="d:/temp/2.jpg"; //新的缩略图保存地址

Image src = javax.imageio.ImageIO.read(file); //构造Image对象

float tagsize=200;

int old_w=src.getWidth(null); //得到源图宽

int old_h=src.getHeight(null);

int new_w=0;

int new_h=0; //得到源图长

int tempsize;

float tempdouble;

if(old_w>old_h){

tempdouble=old_w/tagsize;

}else{

tempdouble=old_h/tagsize;

}

new_w=Math.round(old_w/tempdouble);

new_h=Math.round(old_h/tempdouble);//计算新图长宽

BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);

tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //绘制缩小后的图

FileOutputStream newimage=new FileOutputStream(newurl); //输出到文件流

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);

encoder.encode(tag); //近JPEG编码

newimage.close();

//========================生成缩略图end================================

*/

%>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有