`
jie66989
  • 浏览: 253331 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

下载图片并保存到本地

    博客分类:
  • java
 
阅读更多
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import com.sun.image.codec.jpeg.ImageFormatException;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;


public class DownLoadImg {

/**
* @param args
*/
public static void main(String[] args) {
String urlFilePath = "http://mt1.google.cn/vt/v=w2.114&hl=zh-CN&gl=cn&x=1&y=1&z=1";
// String urlFilePath = "http://www.google.cn/intl/zh-CN/images/logo_cn.gif";
String fileFolder = "F:/Google/";
String fileName = "google.png";

String filePath = fileFolder + fileName;
makeDir(fileFolder);

try {
getImageFromUrl(urlFilePath, filePath,1);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("\n  >>> IMAGE DOWNLOAD DONE! <<<\n");
openFileSystemDir(fileFolder);
}

private static void getImageFromUrl(String url, String newFilePath, int sizeReduceRank)
throws MalformedURLException, IOException {
if (url == null)
return;

URL u = new URL(url);
// 打开连接
URLConnection con = u.openConnection();

// 设置Java服务器代理连接,要不然报错403
// 浏览器可以访问此url图片并显示,但用Java程序就不行报错Server returned HTTP response code:403 for URL
// 具体原因:服务器的安全设置不接受Java程序作为客户端访问(被屏蔽),解决办法是设置客户端的User Agent
con.setRequestProperty("User-Agent", "Mozilla/4.0(compatible;MSIE 5.0;Windows NT;DigExt)");

// 输入流
InputStream is = con.getInputStream();

Image image = javax.imageio.ImageIO.read(is);
// Image image = javax.imageio.ImageIO.read(new URL(url));
int width = image.getWidth(null) / sizeReduceRank;
int height = image.getHeight(null) / sizeReduceRank;
// 更改图片大小 sizeRank是原图的缩小的比例 若为2意思为将下载的文件保存为原理图片长宽的1/2
BufferedImage bufferedImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
bufferedImage.getGraphics().drawImage(image, 0, 0, width, height, null);
FileOutputStream out = new FileOutputStream(newFilePath);
encode(out, bufferedImage);
out.close();
}

protected static void encode(FileOutputStream out, BufferedImage bufferedImage)
throws ImageFormatException, IOException {
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(bufferedImage);
}

private static void makeDir(String fileFolder) {
File file = new File(fileFolder);
if (!file.exists() && !file.isDirectory())
file.mkdir();
}

private static void openFileSystemDir(String dir) {
String openDirCmdString = "cmd.exe /c start ";
String openDirCmd = openDirCmdString + dir;
System.out.println(openDirCmd);
try {
Runtime r = Runtime.getRuntime();
Process p = r.exec(openDirCmd);
BufferedReader bf = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line = "";
while ((line = bf.readLine()) != null)
System.out.println(line);
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
评论

相关推荐

    android从服务器端下载图片并保存在本地sdcard里并在界面滚动显示出来

    在Android开发中,从服务器端下载图片并保存到本地SD卡是常见的需求,尤其是在构建一个包含大量图片的应用,如新闻阅读、社交应用或者电商应用。这个过程涉及到网络请求、文件操作以及UI显示等多个方面。以下将详细...

    微信小程序:小程序上传用户图像至服务器,服务器处理后,小程序下载图片并保存到本地。

    微信小程序:小程序上传用户图像至服务器,服务器处理后,小程序下载图片并保存到本地。

    图片下载并且保存至本地

    在IT行业中,图片下载并保存至本地是一个常见的需求,尤其对于网页爬虫、社交媒体应用或者数据分析项目来说。...了解并掌握这些知识点,可以帮助我们有效地实现从网络下载图片并保存到本地的程序。

    富文本编辑器保存网络图片到本地

    3. **图片的获取与保存**:当富文本编辑器中包含来自网络的图片时,为了确保最终生成的内容能够正常显示这些图片,通常需要将这些网络图片下载并保存到服务器的本地文件系统上,并更新 HTML 中的图片源地址。...

    C#获取图片并保存到本地

    在C#编程环境中,获取网络上的图片并保存到本地是一个常见的任务,这通常涉及到网络请求、数据流处理以及文件操作。下面将详细讲解这个过程,包括必要的知识点和步骤。 首先,你需要一个方法来发送HTTP请求获取图片...

    保存图片到本地相册

    一旦图片保存到本地,需要将文件添加到系统的媒体库,这样相册应用才能识别并显示。调用`MediaStore.Images.Media.insertImage()`方法,传入ContentResolver、图片的URI、标题和描述,将图片信息插入到媒体库。 5....

    图片保存到本地

    在IT行业中,保存图片到本地是一项基础但至关重要的任务,特别是在网页浏览、数据抓取、社交媒体分析等场景中。...通过实践和理解上述代码,你可以轻松地将网络上的图片保存到本地,无论是个人使用还是应用于项目开发。

    易语言网上下载图片并保存显示

    显示信息("图片已成功下载并保存到:" + .本地文件路径) 否则 显示信息("下载图片失败,状态码:" + .响应状态) 结束如果 .网络连接.销毁() // 关闭网络连接 ``` 下载图片后,我们需要将其显示在程序中。易语言...

    cocoscreator 保存图片到本地

    在Cocos Creator中,保存图片到本地是一个常见的需求,尤其对于游戏开发或者任何涉及用户交互的应用来说。这个过程涉及到图像处理和本地存储两个关键部分。接下来,我们将详细探讨如何使用Cocos Creator实现这一功能...

    QT获取网络图片并保存到本地

    在QT编程中,获取网络上的图片并保存到本地是一个常见的任务,这通常涉及到网络编程模块。QT框架提供了QNetworkAccessManager、QNetworkReply和QNetworkRequest等类来处理这种需求。接下来,我们将深入探讨这些类的...

    网页保存图片并下载到本地 兼容IE浏览器

    在网页开发中,有时我们需要将用户当前浏览的页面保存为图片或者将其下载到本地,以供日后查看或分享。在不支持现代Web API的浏览器,尤其是像Internet Explorer(IE)这样的旧版本浏览器中,实现这一功能可能会面临...

    java下载网络图片到本地保存

    在Java编程中,下载网络图片并将其保存到本地是一个常见的任务,特别是在开发涉及网页抓取、数据备份或者网络资源管理的项目中。这个过程通常包括以下几个步骤:建立网络连接、发送请求、接收响应数据以及将数据保存...

    android 将Imageview生成图片后保存到本地相册的实现

    android 将Imageview 将view生成图片后保存到本地相册的实现生成图片后保存到本地相册的实现,android 将Imageview生成图片后保存到本地相册的实现 android 将Imageview生成图片后保存到本地相册的实现, 有需要的朋友...

    android studio 保存图片到本地相册

    在Android开发中,将网络上的图片保存到用户的本地相册是一项常见的需求。Android Studio作为官方推荐的集成开发环境,提供了方便的工具和方法来实现这一功能。本教程将详细讲解如何利用Android Studio将图片从网络...

    unity下载服务器图片保存本地并加载(android和ios)

    unity下载服务器图片保存本地并加载(android和ios),判断本地是否存在,不存在就创建文件.

    C#通过URL保存图片到本地

    这个类通过WebRequest请求将图片通过URL保存到本地

    批量下载网络图片并且保存到SD卡后显示viewpage

    在Android应用开发中,批量下载网络图片并保存到SD卡是一项常见的需求,特别是在构建图片浏览类应用时。本文将详细讲解如何实现这一功能,并展示如何将下载的图片以ViewPager的形式展示给用户。 首先,我们需要理解...

    base64转化为图片保存到本地

    一旦获取到Base64字符串,就可以调用上面的`Base64ToImage`函数,传入Base64字符串和目标保存路径,实现将Base64编码的图片保存到本地。 在项目中,为了提高代码质量,可以对这段代码进行优化,例如添加错误处理、...

    js实现canvas保存图片为png格式并下载到本地的方法

    JavaScript中实现canvas保存图片为PNG格式并下载到本地的方法涉及到几个关键步骤和函数。首先,canvas元素允许我们进行图形绘制操作,并可以将绘制的内容导出为图像。这个过程可以分为以下几个步骤:在canvas上进行...

Global site tag (gtag.js) - Google Analytics