1. 程式人生 > >完整獲取圖片根據圖片連結地址

完整獲取圖片根據圖片連結地址

//完整方式
                              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();