简单的java图片缩放代码
/**
* @param source: source image file
* @param output: output image file
* @param mode: 0 ratio,1 maxWidth,2 maxHeight,3 maxSide
* @param maxSide: maxWidth, maxHeight or maxSide, different by mode
* @param ratio: ratio if resized by ratio
*/
public static void resizeImage(File source, File output, int mode, Integer maxSide, Double ratio)
throws IOException {
// read image
Image sourceImage = ImageIO.read(source);
// resize image
BufferedImage outputImage = getResizeImage(sourceImage, mode, maxSide, ratio);
// wirite image to file
wirteImageToFile(outputImage, output);
}
/**
* @param source: source image
* @param mode: 0 ratio,1 maxWidth,2 maxHeight,3 maxSide
* @param maxSide: maxWidth, maxHeight or maxSide, different by mode
* @param ratio: ratio if resized by ratio
*/
public static BufferedImage getResizeImage(Image source, int mode, Integer maxSide, Double ratio) {
int srcImageWidth = source.getWidth(null);
int srcImageHeight = source.getHeight(null);
int width = 0, height = 0;
switch (mode) {
case 0:
// resize by ratio
width = (int) (srcImageWidth * ratio);
height = (int) (srcImageHeight * ratio);
break;
case 1:
// resize by max width
width = maxSide;
height = new BigDecimal(srcImageHeight).divide(new BigDecimal(srcImageWidth), 5, RoundingMode.HALF_EVEN)
.multiply(new BigDecimal(width)).intValue();
break;
case 2:
// resize by max height
height = maxSide;
width = new BigDecimal(srcImageWidth).divide(new BigDecimal(srcImageHeight), 5, RoundingMode.HALF_EVEN)
.multiply(new BigDecimal(height)).intValue();
break;
case 3:
// resize by max side(between width and height)
if (srcImageWidth > srcImageHeight) {
width = maxSide;
height = maxSide * srcImageHeight / srcImageWidth;
} else {
width = maxSide * srcImageWidth / srcImageHeight;
height = maxSide;
}
break;
}
BufferedImage t
相关文档:
Java
中的常量
常量就是程序里持续不变的值,它是不能改变的数据。
Java
中的常量包含整型常量、浮点数常量、布尔常量等,下面来看一下它们是如何表示的:
整型常量
整型常量可以分为十进制
、十六进制
和八进制
。
十进制
:
0 1 2 3 4 5 6 7 8 9
注意
:以十进制表示时,第一位不能是
0
(数字 ......
Java字符串使用总结
前言:
这篇文章的目的是提醒大家对字符串三种类型做个综合的比较,使得在使用字符串三种类的时候有个选择依据,这样可以极大提高程序运行的效率。如果你对这 ......
最近在学习java的时候,对于java函数的传递了解了一下。java的数据类型大的分为两种,一种是基本数据类型,另一种是非基本数据类型,(类数据类型)。在参数传递时候,基本的数据类型传递的是对实参数的一份拷贝,而非基本数据类型则是实例的引用的一份拷贝。我的理解是类的实例,即对象存放的内容就是引用,实际是地址。
......
一:无返回值的存储过程
存储过程为:
create or replace procedure adddept(deptno number,dname varchar2,loc varchar2)
as
begin
insert into dept values(deptno,dname,loc);
end;
然后呢,在java里调用时就用下面的代码:
public class TestProcedure {
Connectio ......