package util;
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.net.*;
import java.applet.*;
import java.sql.*;
//缩略图类,
//本java类能将jpg图片文件,进行等比或非等比的大小转换。
//具体使用方法
//s_pic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度,是否等比缩放(默认为true))
public class ImageProcessor{
String InputDir; //输入图路径
String OutputDir; //输出图路径
String InputFileName; //输入图文件名
String OutputFileName; //输出图文件名
int OutputWidth = 80; //默认输出图片宽
int OutputHeight = 80; //默认输出图片高
int rate = 0;
boolean proportion = true; //是否等比缩放标记(默认为等比缩放)
public ImageProcessor() {
//初始化变量
InputDir = "";
OutputDir = "";
InputFileName = "";
OutputFileName = "";
OutputWidth = 80;
OutputHeight = 80;
rate = 0;
}
public boolean s_pic() {
// BufferedImage image;
// String NewFileName;
//建立输出文件对象
File file = new File(OutputDir + OutputFileName);
FileOutputStream tempout = null;
try {
tempout = new FileOutputStream(file);
} catch (Exception ex) {
System.out.println(ex.toString());
}
Image img = null;
Toolkit tk = Toolkit.getDefaultToolkit();
Applet app = new Applet();
MediaTracker mt = new MediaTracker(app);
try {
img = tk.getImage(InputDir + InputFileName);
mt.addImage(img, 0);
mt.waitForID(0);
} catch (Exception e) {
e.printStackTrace();
}
if (img.getWidth(null) == -1) {
// System.out.println(" can't read,retry!" + "<BR>");
return false;
} else {
int new_w;
int new_h;
if (this.proportion == true) { //判断是否是等比缩放.
//为等比缩放计算输出的图片宽度及高度
double rate1 = ((double) img.getWidth(null)) / (double) OutputWidth +
0.1;
double rate2 = ((double) img.getHeight(null)) / (double) OutputHeight +
0.1;
double rate = rate1 > rate2 ? rate1 : rate2;
new_w = (int) (((double) img.getWidth(null)) / rate);
new_h = (int) (((double) img.getHeight(null)) / rate);
} else {
new_w = OutputWidth; //输出的图片宽度
new_h = OutputHeight; //输出的图片高度
}
BufferedImage buffImg = new BufferedImage(new_w, new_h,
BufferedImage.TYPE_INT_RGB);
Graphics g = buffImg.createGraphics();
g.setColor(Color.white);
g.fillRect(0, 0, new_w, new_h);
g.drawImage(img, 0, 0, new_w, new_h, null);
g.dispose();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout);
try {
encoder.encode(buffImg);
tempout.close();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
return true;
}
public boolean s_pic(String InputDir, String OutputDir, String InputFileName,
String OutputFileName) {
//输入图路径
this.InputDir = InputDir;
//输出图路径
this.OutputDir = OutputDir;
//输入图文件名
this.InputFileName = InputFileName;
//输出图文件名
this.OutputFileName = OutputFileName;
return s_pic();
}
public boolean s_pic(String InputDir, String OutputDir, String InputFileName,
String OutputFileName, int width, int height, boolean gp) {
//输入图路径
this.InputDir = InputDir;
//输出图路径
this.OutputDir = OutputDir;
//输入图文件名
this.InputFileName = InputFileName;
//输出图文件名
this.OutputFileName = OutputFileName;
//设置图片长宽
setW_H(width, height);
//是否是等比缩放 标记
this.proportion = gp;
return s_pic();
}
public void setInputDir(String InputDir) {
this.InputDir = InputDir;
}
public void setOutputDir(String OutputDir) {
this.OutputDir = OutputDir;
}
public void setInputFileName(String InputFileName) {
this.InputFileName = InputFileName;
}
public void setOutputFileName(String OutputFileName) {
this.OutputFileName = OutputFileName;
}
public void setOutputWidth(int OutputWidth) {
this.OutputWidth = OutputWidth;
}
public void setOutputHeight(int OutputHeight) {
this.OutputHeight = OutputHeight;
}
public void setW_H(int width, int height) {
this.OutputWidth = width;
this.OutputHeight = height;
}
public static void main(String[] a) {
//s_pic(大图片路径,生成小图片路径,大图片文件名,生成小图片文名,生成小图片宽度,生成小图片高度)
ImageProcessor mypic = new ImageProcessor();
System.out.println(
mypic.s_pic("c:/",
"c:/",
"200811241346531.jpg", "20081124134653.jpg", 260, 160,false));
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
jsp图片新闻部分源码
共36个文件
class:6个
java:6个
tld:5个
1星 需积分: 9 43 下载量 132 浏览量
2008-12-06
17:13:29
上传
评论
收藏 467KB RAR 举报
温馨提示
jsp图片新闻部分源码jsp图片新闻部分源码jsp图片新闻部分源码jsp图片新闻部分源码jsp图片新闻部分源码jsp图片新闻部分源码
资源推荐
资源详情
资源评论
收起资源包目录
newsimg 2.rar (36个子文件)
newsimg 2
.project 1KB
.settings
org.eclipse.jdt.core.prefs 330B
com.genuitec.eclipse.j2eedt.core.prefs 1KB
.mymetadata 295B
WebRoot
WEB-INF
struts-tiles.tld 8KB
.struts-config.mex 810B
web.xml 1KB
struts-config.xml 900B
struts-bean.tld 9KB
struts-nested.tld 70KB
struts-html.tld 72KB
struts-logic.tld 14KB
validator-rules.xml 13KB
lib
mysql-connector-java-3.1.11-bin.jar 430KB
classes
ope
OpeNewsImg.class 3KB
dbutil
DbUtil.class 2KB
com
kfu
struts
action
AddNewsAction.class 4KB
form
AddNewsForm.class 2KB
ApplicationResources.properties 78B
po
NewsImg.class 1KB
util
ImageProcessor.class 5KB
addNews.jsp 3KB
META-INF
MANIFEST.MF 39B
uploadfile
shownewsimg.jsp 3KB
flash
focus.swf 5KB
xx.swf 15KB
top.swf 13KB
.myeclipse
src
ope
OpeNewsImg.java 2KB
dbutil
DbUtil.java 2KB
com
kfu
struts
action
AddNewsAction.java 4KB
form
AddNewsForm.java 2KB
ApplicationResources.properties 78B
po
NewsImg.java 915B
util
ImageProcessor.java 6KB
.mystrutsdata 254B
.classpath 547B
共 36 条
- 1
资源评论
- gwl972014-03-08太简单了没一点使用价值!
yueliang521
- 粉丝: 0
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功