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里,需要显示图片时,先从本地查找,查询不到时再从服务器端下载,并在界面实现滚动显示图片
用C#代码,获取图片格式的文件,并保存到本地.
qt关于获取网络图片并保存在本地,运用QNetworkAccessManager,QNetworkReply,QNetworkRequest
保存图片到本地相册,可以在相册查看,Android 6.0以上也可以实现
利用html2canvas将网页抓取成图片并下载到本地,兼容ie内核,项目需要子啊服务器运行,此demo已经做大文件下载网络错误的处理,解决了大图片或大文件下载出错
java下载网络图片到本地保存,还有一个配置文件,用来配置url和保存地址。
android 将Imageview 将view生成图片后保存到本地相册的实现生成图片后保存到本地相册的实现,android 将Imageview生成图片后保存到本地相册的实现 android 将Imageview生成图片后保存到本地相册的实现, 有需要的朋友...
使用html2canvas实现图片截图并保存至本地或在页面中以canvas的方式渲染
包含从网络下载图片并且保存至本地,内有注释,简单易懂,
这个类通过WebRequest请求将图片通过URL保存到本地
今天用uniapp写小程序二维码并保存到本地,网上的完全没有用,最后自己写了一个, 1.使用weapp.qrcode生成二维码,并使用uni.canvasToTempFilePath生成临时图片文件, 2.使用canvas绘制二维码, 3.使用uni....
这个功能是实现了网络下载图片,并且保存到本地的SD卡,然后以viewpager的形式显示
unity下载服务器图片保存本地并加载(android和ios),判断本地是否存在,不存在就创建文件.
网上找了些资料, 把base64转化为图片保存到本地,时间比较紧代码写很粗糙。希望对大家有用
下载图片、保存图片到本地、点赞按钮 下载图片、保存图片到本地、点赞按钮
根据调用系统广播实现,先保存到本地文件管理中,完美运行,可以根据后台返回的String类型图片地址来保存 给个好评噢~
介绍一个PHP下载远程图片保存到本地类,限制最大的执行时间,文件下载保存目录,文件PATH。