将一图片同比例缩小绘制

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

在获得客户端的一个图片后,发现传过来的图片太大,不宜在已经排版好的格式里面显示出来,非凡是页面的图片非凡多时,更不能都让大图片缩小显示。

一般碰到图片问题,有以下几种解决方案:

一、规定(自定义)图片大小

在该位置,图片是多大就显示多大,

这种情况简单易行,但图片易变形,图片太大,导致页面打开速度过慢

二、获得图片尺寸

也因图片过大,不宜在图片过多的也面中显示

下面介绍一种方法,可以读取大图片并生成一个小图片,以解决图片问题。

/*

* Created on 2004-10-11

*

* TODO To change the template for this generated file go to

* Window - Preferences - Java - Code Style - Code Templates

*/

package net.jspcn.test;

import java.io.File;

import java.io.FileOutputStream;

import java.awt.Image;

import java.awt.image.BufferedImage;

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class JpgTest {

public void jpgTset() throws Exception{

File _file = new File("d:\\1.jpg"); //读入文件

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

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

int height=src.getHeight(null); //得到源图长

BufferedImage tag = new BufferedImage(wideth/2,height/2,BufferedImage.TYPE_INT_RGB);

tag.getGraphics().drawImage(src,0,0,wideth/2,height/2,null); //绘制缩小后的图

FileOutputStream out=new FileOutputStream("D:\\newfile.jpg"); //输出到文件流

//File file = new File("D:\\newFile.jpg");

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

//JPEGImageEncoder encoder = JPEGCodec.c

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

out.close();

}

public static void main(String[] args){

try{

new JpgTest().jpgTset();

}catch(Exception e){

e.printStackTrace();

}

}

}

当然,在此基础上,你可以写一图片处理程序,批量的处理你的图片

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