java图片处理方法

地址:https://code.google.com/p/thumbnailator/

方法使用参考:http://www.cnblogs.com/atyou/p/3236068.html

	/**
	 * 指定大小进行缩放
	 * @param src 原始图片
	 * @param dst 图片输出位置
	 */
	public static void scaleImage(File src, File dst) {
		try {
			Thumbnails.of(src)
			.size(DEFAULT_WIDTH, DEFAULT_HEIGHT)
			.toFile(dst);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 按照比例进行缩放
	 * @param src原始图片
	 * @param dst图片输出位置
	 * @param num图片缩放比例
	 */
	public static void scaleImage(File src, File dst, float num) {
		try {
			Thumbnails.of(src)
			.scale(num)//scale(比例)
			.toFile(dst);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 不按照比例,指定大小进行缩放
	 * @param src原始图片
	 * @param dst图片输出位置
	 */
	public static void keepAspectRatioImage(File src, File dst) {
		try {
			Thumbnails.of(src)
			.size(DEFAULT_WIDTH, DEFAULT_HEIGHT)
			.keepAspectRatio(false)//不等比缩放,强制转化成指定大小
			.toFile(dst);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 旋转
	 * @param src原始图片
	 * @param dst图片输出位置
	 * @param num旋转的度数:90°,180°, -90°,-180°等
	 */
	public static void rotateImage(File src, File dst, int num) {
		try {
			Thumbnails.of(src)
			.size(DEFAULT_WIDTH, DEFAULT_HEIGHT)
			.rotate(num)//rotate(角度),正数:顺时针 负数:逆时针
			.toFile(dst);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 水印
	 * @param src原始图片
	 * @param dst图片输出位置
	 * @param watermark水印图片
	 */
	public static void watermarkImage(File src, File dst, File watermark) {
		try {
			Thumbnails.of(src)
			.size(DEFAULT_WIDTH, DEFAULT_HEIGHT)
			//.size(1280, 1024)
			.watermark(Positions.BOTTOM_RIGHT, ImageIO.read(watermark), 0.5f)//watermark(位置,水印图,透明度)
            .outputQuality(0.8f)
			.toFile(dst);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 转化图片格式
	 * @param src原始图片
	 * @param dst图片输出位置
	 * @param format图片格式:png,jpg,gif...
	 */
	public static void formatImage(File src, File dst, String format) {
		try {
			Thumbnails.of(src)
			.size(DEFAULT_WIDTH, DEFAULT_HEIGHT)
			.outputFormat(format)
			.toFile(dst);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 裁剪
	 * @param src原始图片
	 * @param dst图片输出位置
	 */
	public static void sourceRegion(File src, File dst) {
		try {
			Thumbnails.of(src)
			.sourceRegion(Positions.CENTER, 400,400)//图片中心400*400的区域
			//.sourceRegion(Positions.BOTTOM_RIGHT, 400,400)//图片右下400*400的区域
			//.sourceRegion(600, 500, 400, 400)//随意指定坐标下400*400的区域
			.keepAspectRatio(false)
			.size(200, 200)//裁剪图片的大小
			.toFile(dst);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值