public Img scale(float scale) {
		if (scale < 0) {
			// 自动修正负数
			scale = -scale;
		}
		final Image srcImg = getValidSrcImg();

		// PNG图片特殊处理
		if (ImgUtil.IMAGE_TYPE_PNG.equals(this.targetImageType)) {
			// 修正float转double导致的精度丢失
			final double scaleDouble = NumberUtil.toDouble(scale);
			this.targetImage = ImgUtil.transform(AffineTransform.getScaleInstance(scaleDouble, scaleDouble),
					ImgUtil.toBufferedImage(srcImg, this.targetImageType));
		} else {
			// 缩放后的图片宽
			final int width = NumberUtil.mul((Number) srcImg.getWidth(null), scale).intValue();
			// 缩放后的图片高
			final int height = NumberUtil.mul((Number) srcImg.getHeight(null), scale).intValue();
			scale(width, height);
		}
		return this;
	}
@Test
	@Disabled
	public void scaleTest() {
		final String downloadFile = "d:/test/1435859438434136064.JPG";
		final File file = FileUtil.file(downloadFile);
		final File fileScale = FileUtil.file(downloadFile + ".scale." + FileTypeUtil.getType(file));

		final Image img = ImgUtil.getImage(URLUtil.getURL(file));
		ImgUtil.scale(img, fileScale, 0.8f);
	}