java 压缩图片 实例
public class ImageSizer {
public static final MediaTracker tracker = new MediaTracker(new Component() {
private static final long serialVersionUID = 1234162663955668507L;
});
/**
* 图片压缩
*
* @param originalFile 原图像
* @param resizedFile 压缩后的图像
* @param width 图像宽
* @param format 图片格式 jpg, png, gif(非动画)
* @throws IOException
*/
public static void resize(File originalFile, File resizedFile, int width, String format) throws IOException {
if (format != null && "gif".equals(format.toLowerCase())) {
resize(originalFile, resizedFile, width, 1);
return;
}
FileInputStream fis = new FileInputStream(originalFile);
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
int readLength = -1;
int bufferSize = 1024;
byte bytes[] = new byte[bufferSize];
while ((readLength = fis.read(bytes, 0, bufferSize)) != -1) {
byteStream.write(bytes, 0, readLength);
}
byte[] in = byteStream.toByteArray();
fis.close();
byteStream.close();
Image inputImage = Toolkit.getDefaultToolkit().createImage(in);
waitForImage(inputImage);
int imageWidth = inputImage.getWidth(null);
if (imageWidth < 1) {
throw new IllegalArgumentException("image width " + imageWidth + " is out of range");
}
int imageHeight = inputImage.getHeight(null);
if (imageHeight < 1) {
throw new IllegalArgumentException("image height " + imageHeight + " is out of range");
}
// Create output image.
int height = -1;
double scaleW = (double) imageWidth / (double) width;
double scaleY = (double) imageHeight / (double) height;
if (scaleW >= 0 && s
相关文档:
java se:
1.java核心技术(第七版)(很好的入门书籍,有两本)
2.java编程思想(第四版)(我看过第三版,第四版看了一点英文的,觉得这本书还是适合有基础的java学习者巩固基础,也就是说要想打牢基础就看完核心技术看这个~)
3.java jdk实例宝典(这本书里几本包含了所有语法的例程)
4.java se6.0编程指南(厚实 ......
1、作用域public,private,protected,以及不写时的区别
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
不写时默认为friendly √ √ × ×
private √ × × ×
2、ArrayList和Vect ......
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。根据我的经验,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、Java编程入门类
对于没有Java编程经验的程序员要入门,随便读 ......
Java性能优化技巧集锦
一、通用篇
1.1 不用new关键词创建类的实例
1.2 使用非阻塞I/O
1.3 慎用异常
1.4 不要重复初始化变量
1.5 尽量指定类的final修饰符
1.6 尽量使用局部变量
1.7
乘法和除法
二、J2EE篇
2.1 使用缓冲标记
2.2 始终通过会话Bean访问实体Bea ......