在获得客户端的一个图片后,发现传过来的图片太大,不宜在已经排版好的格式里面显示出来,特别是页面的图片特别多时,更不能都让大图片缩小显示。
一般遇到图片问题,有以下几种解决方案:
一、规定(自定义)图片大小
在该位置,图片是多大就显示多大,
这种情况简单易行,但图片易变形,图片太大,导致页面打开速度过慢
二、获得图片尺寸
也因图片过大,不宜在图片过多的也面中显示
下面介绍一种方法,可以读取大图片并生成一个小图片,以解决图片问题。
/* * 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(); } } } |
当然,在此基础上,你可以写一图片处理程序,批量的处理你的图片
闽公网安备 35060202000074号