Java修改图片尺寸

Java修改图片尺寸

修改图片尺寸包括两种情况:

1、强制指定宽、高尺寸

2、按原图宽、高比例,放大或缩小

maven使用thumbnailator库依赖

<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>

工具代码

/**
	 * 重新生成图片宽、高
	 * @param srcPath 图片路径
	 * @param destPath 新生成的图片路径
	 * @param newWith 新的宽度
	 * @param newHeight 新的高度
	 * @param forceSize 是否强制使用指定宽、高,false:会保持原图片宽高比例约束
	 * @return
	 * @throws IOException 
	 */
	public static boolean resizeImage (String srcPath, String destPath, int newWith, int newHeight, boolean forceSize) throws IOException {
		if (forceSize) {
			Thumbnails.of(srcPath).forceSize(newWith, newHeight).toFile(destPath);
		} else {
			Thumbnails.of(srcPath).width(newWith).height(newHeight).toFile(destPath);
		}
		return true;
	}

测试代码

/**
	 * 测试重新生成图片宽、高
	 * @throws IOException 
	 */
	@Test
	public void testResizeImage() throws IOException {
		String imageName = "java_coffee.jpg";
		String srcPath = IMAGE_PATH + imageName;
		
		imageName = "java_coffee_resize.jpg";
		String destPath = IMAGE_PATH + imageName;
		boolean forceSize = true;
		Assert.assertTrue(ImageUtil.resizeImage(srcPath, destPath, 200, 200, forceSize));
	}

原图2000*1600

指定宽高强制200

 指定宽高200,非强制,修改后,得到200*160

完整源码:https://github.com/ConstXiong/xtools 

 


 

 


【Java面试题与答案】整理推荐

 

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
你可以使用 Java 中的 AffineTransform 类来旋转和缩放图片。下面是一个示例代码,它将一个图片旋转90度并且尺寸变大了两倍: ```java import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class ImageRotationExample { public static void main(String[] args) throws Exception { // Load the original image BufferedImage originalImage = ImageIO.read(new File("original.jpg")); // Calculate the new size of the image after rotation and scaling int newWidth = originalImage.getHeight() * 2; int newHeight = originalImage.getWidth() * 2; // Create a new image with the new size BufferedImage newImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_ARGB); // Rotate and scale the original image and draw it onto the new image Graphics2D g = newImage.createGraphics(); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.translate(newWidth / 2, newHeight / 2); g.rotate(Math.toRadians(90)); g.scale(2, 2); g.drawImage(originalImage, -originalImage.getWidth() / 2, -originalImage.getHeight() / 2, null); g.dispose(); // Save the new image ImageIO.write(newImage, "png", new File("rotated.png")); } } ``` 这个代码会加载名为 "original.jpg" 的图片文件,将其旋转90度并且尺寸变大了两倍,然后将处理后的图片保存为名为 "rotated.png" 的 PNG 文件。你可以根据需要修改代码来适应不同的图片尺寸和旋转角度。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值