Java base64转图片设置宽高
时间: 2023-11-16 12:53:29 浏览: 450
js html java servlet 前台接收base64数据后台转图片保存上传
对于Java中的Base64转图片,并设置图片的宽高,可以按照以下步骤进行操作:
1. 首先,将Base64字符串解码为字节数组。可以使用Base64类提供的`getDecoder().decode()`方法来实现,其中`getDecoder()`返回一个Base64.Decoder对象,`decode()`方法将Base64字符串解码为字节数组。
2. 创建一个BufferedImage对象,通过调用`ImageIO.read()`方法,并传入解码后的字节数组作为参数,将字节数组转换为BufferedImage对象。
3. 设置所需的图片宽高。可以通过调用BufferedImage对象的`getScaledInstance()`方法来实现,该方法返回一个按照指定宽高缩放后的新BufferedImage对象。可以将原始BufferedImage对象的宽高与目标宽高进行比例计算,得到所需缩放比例。
4. 将新的BufferedImage对象保存为图片文件或进行其他操作。
下面是一个示例代码,演示了如何将Base64字符串转换为图片并设置宽高:
```java
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.Base64;
import javax.imageio.ImageIO;
public class ImageUtils {
public static void main(String[] args) throws IOException {
String base64Image = "your_base64_image_string"; // 替换成你的Base64字符串
// 解码Base64字符串为字节数组
byte[] imageBytes = Base64.getDecoder().decode(base64Image);
// 将字节数组转换为BufferedImage对象
BufferedImage bufferedImage = ImageIO.read(new ByteArrayInputStream(imageBytes));
// 设置图片宽高
int width = 500; // 设置宽度为500
int height = 300; // 设置高度为300
Image scaledImage = bufferedImage.getScaledInstance(width, height, Image.SCALE_SMOOTH);
// 创建新的BufferedImage对象
BufferedImage newImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
newImage.getGraphics().drawImage(scaledImage, 0, 0, null);
// 保存新图片到文件
File outputFile = new File("output.png"); // 替换成你想保存的文件路径
ImageIO.write(newImage, "png", outputFile);
}
}
```
阅读全文