完整獲取圖片根據圖片連結地址
阿新 • • 發佈:2019-02-14
//完整方式
try {
URL url = new URL(圖片連結地址);
HttpURLConnection uc = (HttpURLConnection) url.openConnection();
uc.setDoInput(true);//設定是否要從 URL 連線讀取資料,預設為true
uc.connect();
in = uc.getInputStream();
bi = ImageIO.read(in);
} catch (IIOException e) {
Iterator readers = ImageIO.getImageReadersByFormatName("JPEG");
ImageReader reader = null;
while (readers.hasNext()) {
reader = (ImageReader) readers.next();
if (reader.canReadRaster()) {
break;
}
}
ImageInputStream input = ImageIO.createImageInputStream(in);
reader.setInput(input);
Raster raster = reader.readRaster(0, null);
bi = new BufferedImage(raster.getWidth(), raster.getHeight(),
BufferedImage.TYPE_4BYTE_ABGR);
bi.getRaster().setRect(raster);
}
double width = bi.getWidth();
double height = bi.getHeight();
double percent = widths/width;
int newWidth = (int)(width * percent);
int newHeight = (int)(height * percent);
BufferedImage image = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_BGR);
Graphics graphics = image.createGraphics();
graphics.drawImage(bi, 0, 0, newWidth, newHeight, null);
String path = ProgramInjectServiceImpl.class.getResource("/").getPath();
path = path.substring(0,path.indexOf("WEB-INF"));
String fileName = p.getFileName();
String last = fileName.substring(fileName.lastIndexOf(".")+1);
File fout = new File(path + "temp/"+fileName);
ImageIO.write(image, last, fout);
fout.delete();
//可能獲取不完整方式
URL url2= new URL(圖片連結地址);
HttpURLConnection urlconn = (HttpURLConnection) url2.openConnection();
InputStream is = url2.openStream();
int in = is.available(); // 得到檔案大小
byte[] buffer = new byte[in];
is.read(buffer); // 讀資料
is.close();
OutputStream out= new FileOutputStream(輸出圖片檔案路徑(包括圖片名稱));
out.write(buffer); // 輸出資料
out.close();
try {
URL url = new URL(圖片連結地址);
HttpURLConnection uc = (HttpURLConnection) url.openConnection();
uc.setDoInput(true);//設定是否要從 URL 連線讀取資料,預設為true
uc.connect();
in = uc.getInputStream();
bi = ImageIO.read(in);
} catch (IIOException e) {
Iterator readers = ImageIO.getImageReadersByFormatName("JPEG");
ImageReader reader = null;
while (readers.hasNext()) {
reader = (ImageReader) readers.next();
if (reader.canReadRaster()) {
break;
}
}
ImageInputStream input = ImageIO.createImageInputStream(in);
reader.setInput(input);
Raster raster = reader.readRaster(0, null);
bi = new BufferedImage(raster.getWidth(), raster.getHeight(),
BufferedImage.TYPE_4BYTE_ABGR);
bi.getRaster().setRect(raster);
}
double width = bi.getWidth();
double height = bi.getHeight();
double percent = widths/width;
int newWidth = (int)(width * percent);
int newHeight = (int)(height * percent);
BufferedImage image = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_BGR);
Graphics graphics = image.createGraphics();
graphics.drawImage(bi, 0, 0, newWidth, newHeight, null);
String path = ProgramInjectServiceImpl.class.getResource("/").getPath();
path = path.substring(0,path.indexOf("WEB-INF"));
String fileName = p.getFileName();
String last = fileName.substring(fileName.lastIndexOf(".")+1);
File fout = new File(path + "temp/"+fileName);
ImageIO.write(image, last, fout);
fout.delete();
//可能獲取不完整方式
URL url2= new URL(圖片連結地址);
HttpURLConnection urlconn = (HttpURLConnection) url2.openConnection();
InputStream is = url2.openStream();
int in = is.available(); // 得到檔案大小
byte[] buffer = new byte[in];
is.read(buffer); // 讀資料
is.close();
OutputStream out= new FileOutputStream(輸出圖片檔案路徑(包括圖片名稱));
out.write(buffer); // 輸出資料
out.close();