简单的java图像裁减
/**
* 对图片裁剪,并把裁剪完蛋新图片保存 。
*
* @param srcpath: 被裁减的图片完整路径
* @param tarpath: 已裁减的新图片保存完整的路径
* @param x: 裁减矩形区域左上顶点水平位移
* @param y: 裁减矩形区域左上顶点垂直位移
* @param width: 裁减矩形区域的宽度
* @param height: 裁减矩形区域的高度
*/
public static void cut(String srcpath, String tarpath, int x, int y, int width, int height) {
try {
// 读取图片文件
FileInputStream is = new FileInputStream(srcpath);
// 获取图片流
ImageInputStream iis = ImageIO.createImageInputStream(is);
// 转化成输出流
BufferedImage outputImage = getSubimage(ImageIO.read(iis), x, y, width, height);
// 保存新图片
if (null != outputImage) {
ImageIO.write(outputImage, "jpg", new File(tarpath));
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static BufferedImage getSubimage(BufferedImage inputImage, int x, int y, int width, int height) {
return getSubimage(inputImage, new Rectangle(x, y, width, height));
}
public static BufferedImage getSubimage(BufferedImage inputImage, Rectangle rect) {
if (rect.x < 1 || rect.y < 1 || rect.x > inputImage.getWidth() || rect.y > inputImage.getHeight()) {
return null;
}
int x = Math.min(inputImage.getWidth(), rect.x);
int y = Math.min(inputImage.getHeight(), rect.y);
int width = Math.min(inputImage.getWidth() - x, rect.width);
int height = Math.min(inputImage.getHeight() - y, rect.height);
return inputImage.getSubimage(x, y, width, height);
}
相关文档:
不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对前段时间工作的总结和自我技术的条理话。JAVA中synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class li ......
关键字: java多线程例子
到这里我们做一个完整的例子来说明线程产生的方式不同而生成的线程的区别:
package debug;
import java.io.*;
import java.lang.Thread;
class MyThread extends Thread{
public int x = 0;
public void run(){
System.out.println(++x);
}
}
class R implements Runnable{ ......
serialVersionUID 用来表明类的不同版本间的兼容性
简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列 ......
作者:cleverpig(作者的Blog:http://blog.matrix.org.cn/page/cleverpig
)
原文:http://www.matrix.org.cn/resource/article/44/44055_Java+Annotation+Reflect.html
关键字:java,annotation,reflect
阅读提示:文中提到的程序成员或者程序元素是一个概念,指组成程序代码的单元:如类、方法、成员变量。
一、Annotatio ......
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行 ......