仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1060|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA教程之JAVA对JPEG图片举行处置

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:47:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。


在某些网站,我们常常必要上传一些图片材料。但跟着高分辩率DC的提高,上传的图片容量会很年夜,好比300万象素DC出来的文件基础不下600K。

  为了办理便利,人人大概不肯意每次都用ACDsee修正它,而间接上传到服务器。可是这类做法在客户端看来就没有那末轻松了,关于拨号上彀的用户几乎是一场噩梦,固然你能够在图片地区设置wide和high!    成绩的办理之道来了!我们能够在类中处置一张年夜图,并减少它。  条件是必要JDK1.4,如许才干举行处置。按以下办法做:
  importjava.io.File;  importjava.io.FileOutputStream;  importjava.awt.Graphics;  importjava.awt.Image;  importjava.awt.image.BufferedImage;  importcom.sun.image.codec.jpeg.JPEGCodec;  importcom.sun.image.codec.jpeg.JPEGImageEncoder;    publicclassJpgTest{    publicvoidJpgTset()throwsException{  File_file=newFile("/Order005-0001.jpg");//读进文件  Imagesrc=javax.imageio.ImageIO.read(_file);//机关Image对象  intwideth=src.getWidth(null);//失掉源图宽  intheight=src.getHeight(null);//失掉源图长  BufferedImagetag=newBufferedImage(wideth/2,height/2,BufferedImage.TYPE_INT_RGB);  tag.getGraphics().drawImage(src,0,0,wideth/2,height/2,null);//绘制减少后的图  FileOutputStreamout=newFileOutputStream("newfile.jpg");//输入到文件流  JPEGImageEncoderencoder=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来完成图片的复制、信息猎取、斜角、殊效、组合、改动巨细、加边框、扭转、切片、改动格局、往色等等功效。

java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。
小女巫 该用户已被删除
沙发
发表于 2015-1-18 18:54:55 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-22 23:57:45 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
金色的骷髅 该用户已被删除
地板
发表于 2015-1-24 12:16:12 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
因胸联盟 该用户已被删除
5#
发表于 2015-2-2 22:30:14 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
分手快乐 该用户已被删除
6#
发表于 2015-2-5 19:36:28 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
7#
发表于 2015-2-13 05:37:18 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
乐观 该用户已被删除
8#
发表于 2015-3-3 15:18:52 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
再见西城 该用户已被删除
9#
发表于 2015-3-10 08:04:17 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
爱飞 该用户已被删除
10#
发表于 2015-3-17 05:26:06 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
若天明 该用户已被删除
11#
发表于 2015-3-17 12:10:38 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
柔情似水 该用户已被删除
12#
发表于 2015-3-18 08:00:02 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
简单生活 该用户已被删除
13#
发表于 2015-3-21 18:48:32 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
蒙在股里 该用户已被删除
14#
发表于 2015-4-1 08:09:35 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
再现理想 该用户已被删除
15#
发表于 2015-4-3 03:47:58 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
谁可相欹 该用户已被删除
16#
发表于 2015-4-5 01:48:16 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
不帅 该用户已被删除
17#
发表于 2015-4-11 08:10:08 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
若相依 该用户已被删除
18#
发表于 2015-4-21 00:32:49 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
透明 该用户已被删除
19#
发表于 2015-5-6 10:38:41 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 06:01

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表