//俺写的,只能在windows下使用,在linux下执行到Toolkit tk=Toolkit.getDefaultToolkit();会出错
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.net.*;
import java.applet.*;
import java.io.*;
import java.util.*;public class cc
{
//----------------------------------------
//生成缩略图,目前只支持jpg格式
public boolean GetSmallImage(File orifile,File outfile,int newwidth,int newheight)
{
try
{
BufferedImage image;
Image img=null;
Toolkit tk=Toolkit.getDefaultToolkit();
Applet app=new Applet();
MediaTracker mt = new MediaTracker(app);
//获取原始图
img=tk.getImage(orifile);
mt.addImage(img, 0);
mt.waitForID(0);
//绘制缩略图
BufferedImage buffImg = new BufferedImage(newwidth,newheight,BufferedImage.TYPE_INT_RGB);
Graphics g = buffImg.createGraphics();
g.setColor(Color.white);
g.fillRect(0,0,newwidth,newheight);
g.drawImage(img,0,0,newwidth,newheight,null);
g.dispose();
//输出缩略图
java.io.OutputStream tempout=null;
java.io.File tempfile=new java.io.File(outfile);
tempout= new FileOutputStream(tempfile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout);
encoder.encode(buffImg);
//
if(tempout!=null)
tempout.close();
}
catch(Exception e)
{
return false;
}
return true;
}//end of GetSmallImage
public static void main(String args[])
{
cc abb=new cc();
try
{
File aa=new File("c:\\bb_big.jpg");
File bb=new File("c:\\bb.jpg");
abb.GetSmallImage(aa,bb,200,150);
}
catch(Exception e)
{
} }//end of main
}//End of All
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
import java.net.*;
import java.applet.*;
import java.io.*;
import java.util.*;public class cc
{
//----------------------------------------
//生成缩略图,目前只支持jpg格式
public boolean GetSmallImage(File orifile,File outfile,int newwidth,int newheight)
{
try
{
BufferedImage image;
Image img=null;
Toolkit tk=Toolkit.getDefaultToolkit();
Applet app=new Applet();
MediaTracker mt = new MediaTracker(app);
//获取原始图
img=tk.getImage(orifile);
mt.addImage(img, 0);
mt.waitForID(0);
//绘制缩略图
BufferedImage buffImg = new BufferedImage(newwidth,newheight,BufferedImage.TYPE_INT_RGB);
Graphics g = buffImg.createGraphics();
g.setColor(Color.white);
g.fillRect(0,0,newwidth,newheight);
g.drawImage(img,0,0,newwidth,newheight,null);
g.dispose();
//输出缩略图
java.io.OutputStream tempout=null;
java.io.File tempfile=new java.io.File(outfile);
tempout= new FileOutputStream(tempfile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(tempout);
encoder.encode(buffImg);
//
if(tempout!=null)
tempout.close();
}
catch(Exception e)
{
return false;
}
return true;
}//end of GetSmallImage
public static void main(String args[])
{
cc abb=new cc();
try
{
File aa=new File("c:\\bb_big.jpg");
File bb=new File("c:\\bb.jpg");
abb.GetSmallImage(aa,bb,200,150);
}
catch(Exception e)
{
} }//end of main
}//End of All
解决方案 »
- 重定向怎么才能在另一页得到登录输入的内容
- HttpURLConnection模拟 POST 动作出错
- struts中actionform的validate()返回错误回到jsp页面上,为什么原来的选择都乱了
- js的级联 浏览器兼容问题
- 求两个正则表达式的写法?拜谢
- jsp页面的地址传递一个参数决定加载那个头和尾,怎么实现?
- JSP连接数据库居然出问题?
- 关于Redirect requested but followRedirects is disabled的问题
- 开发一个类似百度的搜索工具,得到的检索词应该怎么处理?
- 关于window.open("index1.asp?x=leftposition
- 页面中有上传文件操作,请问怎样控制上传文件的类型只能为jpg、gif啊?
- 编译JAVA文件,提示错误missing return statement ,急啊。谢各位了,先。
<%@ page import="javax.imageio.IIOException" %>
<%@ page import="java.awt.image.BufferedImage" %>;
<%@ page import="java.awt.Image" %>
<%@ page import="java.io.File" %>
<%@ page import="java.awt.image.AffineTransformOp" %>
<%@ page import="java.awt.geom.AffineTransform" %><%
try
{ //如果是windows,File fi=new File("c:\\abc\\aaa.jpg");
File fi = new File("/home/images/aaa.jpg"); //大图文件
File fo = new File("/home/images/aab.jpg"); //将要转换出的小图文件
int nw = 100;//新的长度
AffineTransform transform = new AffineTransform();
BufferedImage bis = ImageIO.read(fi);
//
int w = bis.getWidth();//原来的长度
int h = bis.getHeight();//原来的高度
double scale = (double)w/h;
int nh = (nw*h)/w ;//新的高度
//
double sx = (double)nw/w;//宽度比例
double sy = (double)nh/h;//高度比例
transform.setToScale(sx,sy);
System.out.println(w + " " +h);
//
AffineTransformOp ato = new AffineTransformOp(transform,null);
BufferedImage bid = new BufferedImage(nw,nh,BufferedImage.TYPE_3BYTE_BGR);
ato.filter(bis,bid);
ImageIO.write(bid,"jpeg",fo);
}
catch(Exception e)
{
out.println(e);
}
%>