首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 冲浪宝典-> 冲浪技巧
JAVA对JPEG图片进行处理-JSP教程,Java技巧及代码
作者:网友供稿 点击:41
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 



在某些网站,我们往往需要上传一些图片资料。但随着高分辨率dc的普及,上传的图片容量会很大,比如300万象素dc出来的文件基本不下 600k。

  为了管理方便,大家可能不愿意每次都用acdsee修改它,而直接上传到服务器。但是这种做法在客户端看来就没有那么轻松了,对于拨号上网的用户简直是一场恶梦,虽然你可以在图片区域设置wide和high!    问题的解决之道来了!我们可以在类中处理一张大图,并缩小它。  前提是需要jdk1.4,这样才能进行处理。按以下方法做:
  import java.io.file;  import java.io.fileoutputstream;  import java.awt.graphics;  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("/order005-0001.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("newfile.jpg");          //输出到文件流  jpegimageencoder encoder = jpegcodec.createjpegencoder(out);         encoder.encode(tag);                                               //近jpeg编码  //system.out.print(width+"*"+height);                                out.close();  }  }
    过程很简单,从本地磁盘读取文件order005-0001.jpg(2032*1524),变成image对象src,接着构造目标文件tag,设置tag的长宽为源图的一半,对tag进行编码,输出到文件流out,最后关闭文件流。    还有一些问题需要说明:  第一,目前只能支持jpg(jpeg)、gif、png三种格式。  第二,对于源图的容量有限制,最好不要超过1m,否则会抛内存不足的错误,不过我试验过1.8m的源图,可以成功,但是也很容易抛内存不足。    引用一位前辈的话:图象运算本身是密集型运算,需要大量的内存存放象素值。我用vc试了一下,4m的图象也有问题,而且越是压缩比大的图片在内存中还原成 bitmap时需要的内存越大。解决的方法,可以重写编码类,先开一定的内存,然后一段一段编码写到临时文件中,输出的时候再一段一段读出来。或利用 nio的内存映象来操作。

  javamail由于采用了builder模式,先生成一个邮件的每一个部分,然后合并成一个完整的邮件对象,这样每个构件都要先生成到内存中,你如果发送一个上百兆的附件,那么在构造part时肯定内存溢出,所以我就改写了bodypart的构造,让他和一个临时文件关联,然后用临时文件保存part而不是构造在内存中,这样任义大小的附件(硬盘能放得下为限)都可以发送了。    最后,如果大家对图像处理有更高的要求,不妨关注一下开源项目。比如jmagick,可以使用jmagick来实现图片的复制、信息获取、斜角、特效、组合、改变大小、加边框、旋转、切片、改变格式、去色等等功能。

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·不用SQL语句查询DataTable中的数据-.NET教程,数据库应用
·一个asp模板类-ASP教程,ASP应用
·谈有线电视系统前端设备调试
·表单提交“GET”的用法(form所有提交的值都会在地址栏出现)-ASP教程,ASP应用
·-48v整流器配置与直流系统设置
·c#下重写BUTTON控件-.NET教程,C#语言
·catv网络常见及疑难故障的分析处理
·常用路由协议的分析及比较
·mpls的体系结构与组网技术
·初级:.net框架下的MD5-.NET教程,.NET Framework
最新文章
·在线高速免费收看英超比赛的方法_冲浪技巧
·为什么成功的论坛和博客无法双管其下_站长心得
·做好一个好的网站策划_网络编辑
·windows live folders 新鲜试用_冲浪技巧
·什么样的网站放google adsense最理想_网赚技巧
·被google adsense 除名后怎么办_网赚技巧
·刘韧:站长站在草根与神话之间_站长访谈
·张弛有度的google adsense_google推广
·浏览器内嵌流媒体播放器silverlight_冲浪技巧
·高分辨率下界面布局的解决方案4_站长心得
相关主题
  • JAVA对象序列化保存为XML文件的工具类-JSP教程,Java技巧及代码
  • Java对等计算实践:基于 IP 多播的发现-JSP教程,Java技巧及代码
  • java对象序列化学习笔记-JSP教程,Java技巧及代码
  • Java对象与XML文件之间相互转化(含源代码)-JSP教程,Java技巧及代码
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭