java 如何通过图片的网络路径将多张图片压缩到本地保存?

您所在的位置:网站首页 java图片对象 java 如何通过图片的网络路径将多张图片压缩到本地保存?

java 如何通过图片的网络路径将多张图片压缩到本地保存?

2023-04-02 16:35| 来源: 网络整理| 查看: 265

Java 可以使用第三方库 ImageIO 和 Java Image Scaling 进行图片的压缩。以下是通过图片的网络路径将多张图片压缩到本地保存的步骤:

导入 ImageIO 和 Java Image Scaling 的依赖。使用 HttpURLConnection 打开网络图片的连接,获取图片数据流。使用 ImageIO 读取图片数据流,得到 BufferedImage 对象。使用 Java Image Scaling 对 BufferedImage 对象进行压缩。使用 ImageIO 将压缩后的 BufferedImage 对象保存到本地文件。

以下是示例代码:

javaCopy code import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import javax.imageio.ImageIO; public class ImageDownloader { public static void downloadImage(String imageUrl, String savePath, String fileName) throws IOException { URL url = new URL(imageUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5 * 1000); InputStream inputStream = conn.getInputStream(); BufferedImage originalImage = ImageIO.read(inputStream); int originalWidth = originalImage.getWidth(); int originalHeight = originalImage.getHeight(); int scaledWidth = 500; // 设置压缩后的宽度为 500 像素 int scaledHeight = (int) Math.round((scaledWidth * 1.0 / originalWidth) * originalHeight); // 按比例计算高度 BufferedImage scaledImage = new BufferedImage(scaledWidth, scaledHeight, originalImage.getType()); scaledImage.getGraphics().drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); File saveDir = new File(savePath); if (!saveDir.exists()) { saveDir.mkdirs(); } File saveFile = new File(savePath + File.separator + fileName); ImageIO.write(scaledImage, "jpg", saveFile); } public static void main(String[] args) { String imageUrl1 = "https://example.com/image1.jpg"; String imageUrl2 = "https://example.com/image2.jpg"; String savePath = "C:/temp"; String fileName1 = "image1.jpg"; String fileName2 = "image2.jpg"; try { downloadImage(imageUrl1, savePath, fileName1); downloadImage(imageUrl2, savePath, fileName2); } catch (IOException e) { e.printStackTrace(); } } }

以上代码会将两张网络图片下载到本地,并压缩到宽度为 500 像素,保存为 JPG 格式的文件。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3