springboot 下载远程图片并压缩
时间: 2023-12-13 07:00:42 浏览: 90
下载远程图片
在Spring Boot中,可以使用Java的URL和HttpURLConnection类来从远程服务器下载图片。首先,通过URL类的openStream()方法打开图片的输入流,然后使用FileOutputStream类将该输入流中的数据写入本地文件。代码示例如下:
```java
import java.io.*;
import java.net.*;
import java.awt.Image;
import javax.imageio.ImageIO;
public class ImageDownload {
public static void downloadAndCompressImage(String imageUrl, String savePath, int compressWidth, int compressHeight) {
try {
URL url = new URL(imageUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream inputStream = connection.getInputStream();
Image originalImage = ImageIO.read(inputStream);
Image compressedImage = originalImage.getScaledInstance(compressWidth, compressHeight, Image.SCALE_SMOOTH);
BufferedImage bufferedImage = new BufferedImage(compressWidth, compressHeight, BufferedImage.TYPE_INT_RGB);
bufferedImage.getGraphics().drawImage(compressedImage, 0, 0, null);
File outputFile = new File(savePath);
ImageIO.write(bufferedImage, "jpg", outputFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String imageUrl = "http://example.com/image.jpg";
String savePath = "C:/images/image_compressed.jpg";
int compressWidth = 100;
int compressHeight = 100;
downloadAndCompressImage(imageUrl, savePath, compressWidth, compressHeight);
}
}
```
上面的代码中,我们定义了一个downloadAndCompressImage()方法来下载和压缩图片。我们传入图片的URL、保存路径和压缩后的宽度和高度作为参数。在方法中,首先使用URL和HttpURLConnection类下载图片,并使用ImageIO类读取输入流中的图片数据。然后,我们将原始图片压缩到指定的宽度和高度,并将压缩后的图片保存到本地文件中。在main方法中,我们可以调用downloadAndCompressImage()方法来执行图片下载和压缩的操作。这样就可以在Spring Boot应用中实现远程图片下载和压缩的功能。
阅读全文