生成缩略图工具类

1、根据路径图片生成缩略图

/**
	 * Description: 根据图片路径生成缩略图
	 * 
	 * @param imagePath
	 *            原图片路径
	 * @param w
	 *            缩略图宽
	 * @param h
	 *            缩略图高
	 * @param prevfix
	 *            生成缩略图的前缀
	 * @param force
	 *            是否强制按照宽高生成缩略图(如果为false,则生成最佳比例缩略图)
	 * @throws IOException 
	 */
	public static void thumbnailImage(File imgFile, int w, int h,
			String prevfix, boolean force) throws IOException {
		Image img = ImageIO.read(imgFile);
		if (!force) {
			// 根据原图与要求的缩略图比例,找到最合适的缩略图比例
			int width = img.getWidth(null);
			int height = img.getHeight(null);
			if ((width * 1.0) / w < (height * 1.0) / h) {
				if (width > w) {
					h = Integer.parseInt(new java.text.DecimalFormat(
							"0").format(height * w / (width * 1.0)));
				}
			} else {
				if (height > h) {
					w = Integer.parseInt(new java.text.DecimalFormat(
							"0").format(width * h / (height * 1.0)));
				}
			}
		}
		BufferedImage bi = new BufferedImage(w, h,
				BufferedImage.TYPE_INT_RGB);
		Graphics g = bi.getGraphics();
		g.drawImage(img, 0, 0, w, h, Color.LIGHT_GRAY, null);
		g.dispose();
		// 将图片保存在原目录并加上前缀
		try {
			ImageIO.write(bi, "jpg", new File(imgFile.getPath() + prevfix));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值