日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java 讀取網絡圖片存儲到本地并生成縮略圖

瀏覽:20日期:2022-08-11 16:21:20
目錄1.創建用于保存圖片的文件夾2.新建 createLocalImage 類用于圖片轉換3.生成縮略圖使用工具類Thumbnails另一種方法

之前使用 Python 爬蟲抓取電影網站信息作為自己網站的數據來源,其中包含的圖片都是網絡圖片,會存在這樣一個問題:

當原始網站訪問速度比較慢時,網站圖片加載時間也會變得很慢,而且如果原始網站掛了,圖片就直接訪問不到了。

此時的用戶體驗就很不好,所以對此進行了優化:

每次后端啟動時會默認開啟任務先將未轉換的網絡圖片存儲到本地,再把網頁中圖片列表改為訪問本地圖片,這樣就解決了加載慢的問題,也降低了和原始網站的耦合性,具體步驟如下:

1.創建用于保存圖片的文件夾

我的保存路徑:F:images

2.新建 createLocalImage 類用于圖片轉換

package com.cn.beauty.task;import java.io.BufferedInputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.net.HttpURLConnection;import java.net.URL;public class createLocalImage {// 需要保存到本地的根路徑 private static String basePath = 'F:/'; public static void main(String[] args) { // 網頁圖片路徑String destUrl = 'http://5b0988e595225.cdn.sohucs.com/images/20200215/349bb3cb88b744dcb67f37dba2f71abf.jpeg';String filePath = createLocalImageMethod(destUrl);System.out.println('生成的相對文件路徑為' + filePath); } private static String createLocalImageMethod(String destUrl) {FileOutputStream fos = null;BufferedInputStream bis = null;HttpURLConnection httpUrl = null;URL url = null;int BUFFER_SIZE = 1024;byte[] buf = new byte[BUFFER_SIZE];int size = 0;String filePath = '';try { System.out.println('原始圖片URL為:' + destUrl); String[] fileNameArray = destUrl.split('/'); if (fileNameArray.length > 1) {String fileName = fileNameArray[fileNameArray.length - 1];filePath = 'images/' + fileName;File file = new File(basePath + filePath);if (!file.exists()) { url = new URL(destUrl); httpUrl = (HttpURLConnection) url.openConnection(); httpUrl.connect(); bis = new BufferedInputStream(httpUrl.getInputStream()); fos = new FileOutputStream(basePath + filePath); while ((size = bis.read(buf)) != -1) {fos.write(buf, 0, size); } fos.flush();}// 后續對圖片進行縮略圖處理,見后面代碼 }} catch (IOException e) { e.printStackTrace();} catch (ClassCastException e) { e.printStackTrace();} finally { try {fos.close();bis.close();httpUrl.disconnect(); } catch (IOException e) { } catch (NullPointerException e) { }}return filePath; }}

運行后發現圖片已經成功生成:

Java 讀取網絡圖片存儲到本地并生成縮略圖

3.生成縮略圖使用工具類Thumbnails

如果是圖片列表的展示,原始圖片過大還是會影響加載速度,此時我們可以將圖片處理為縮略圖進行顯示。

我們使用了一個很強大的圖片處理工具類:Thumbnails,它支持的功能包括:

按指定大小進行縮放; 按照比例進行縮放; 不按照比例,指定大小進行縮放; 旋轉,水印,裁剪; 轉化圖像格式; 輸出到 OutputStream; 輸出到 BufferedImage;

這里的需求比較簡單,只用到了按指定大小進行縮放的功能。

引入對應 jar 包:

<dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.8</version></dependency>

在 createLocalImage 方法中添加縮略圖生成的代碼實現:

String thumbName = fileName.split('.')[0] + '_thumb.' + fileName.split('.')[1]; String thumbPath = basePath + filePath.replace(fileName, thumbName); //將要轉換出的小圖文件 File fo = new File(thumbPath); if (fo.exists()) { return thumbPath; } // 第一個參數是原始圖片的路徑,第二個是縮略圖的路徑 Thumbnails.of(basePath + filePath).size(120, 120).toFile(thumbPath); System.out.println('生成的縮略圖路徑為:' + thumbPath);

再次運行,發現縮略圖已經成功生成:

Java 讀取網絡圖片存儲到本地并生成縮略圖

另一種方法

直接將下面的代碼封裝成一個util即可,調用示例在main方法中,調用的地方需要引入import java.awt.image.BufferedImage;,還要確保舊文件是存在的

import java.awt.image.BufferedImage;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.HashMap;import java.util.Map;import javax.imageio.ImageIO;import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGEncodeParam;import com.sun.image.codec.jpeg.JPEGImageEncoder;public class ResizeImage { public static void main(String[] args) throws IOException {//windows路徑,linux環境下相應修改String outputFolder = 'D:test';String fileName = 'D:testtest.jpg';ResizeImage r = new ResizeImage();int toWidth=220,toHeight=220;BufferedImage imageList = r.getImageList(fileName,new String[] {'jpg','png','gif'});r.writeHighQuality('newFile.jpg',r.zoomImage(imageList,toWidth,toHeight),outputFolder); } /** * @Description: 取得圖片對象 * @param 要轉化的圖像的文件夾,就是存放圖像的文件夾路徑 * @date 2017年5月7日10:48:27 */ public BufferedImage zoomImage(BufferedImage im, int toWidth , int toHeight) {BufferedImage result = new BufferedImage(toWidth, toHeight, BufferedImage.TYPE_INT_RGB);result.getGraphics().drawImage(im.getScaledInstance(toWidth, toHeight, java.awt.Image.SCALE_SMOOTH), 0, 0, null);return result; } /** * @Description: 取得圖片對象 * @param 要轉化的圖像的文件夾,就是存放圖像的文件夾路徑 * @date 2017年5月7日10:48:27 */ public BufferedImage getImageList(String ImgList, String[] type) throws IOException{Map<String,Boolean> map = new HashMap<String, Boolean>();for(String s : type) { map.put(s,true);}BufferedImage imageList = null;File file = null;file = new File(ImgList);try{ if(file.length() != 0 && map.get(getExtension(file.getName())) != null ){imageList = javax.imageio.ImageIO.read(file); }}catch(Exception e){ imageList = null;}return imageList; } /** * 把圖片寫到磁盤上 * @param im * @param path 圖片寫入的文件夾地址 * @param fileName 寫入圖片的名字 * @date 2017年5月7日10:48:27 */ public boolean writeToDisk(BufferedImage im, String path, String fileName) {File f = new File(path + fileName);String fileType = getExtension(fileName);if (fileType == null) return false;try { ImageIO.write(im, fileType, f); im.flush(); return true;} catch (IOException e) { return false;} } /** * @Description: 生成圖片 * @param String path , BufferedImage im, String fileFullPath * @date 2017年5月7日10:48:27 */ public boolean writeHighQuality(String path , BufferedImage im, String fileFullPath) throws IOException {FileOutputStream newimage = null;try { // 輸出到文件流 newimage = new FileOutputStream(fileFullPath+path); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage); JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(im); // 壓縮質量 jep.setQuality(1f, true); encoder.encode(im, jep); //近JPEG編碼 newimage.close(); return true;} catch (Exception e) { return false;} } /** * @Description: 取文件名的后綴 * @param String fileName 格式如:cn1100000213EA_1_xnl.jpg * @date 2017年5月7日10:48:27 */ public String getExtension(String fileName) {try { return fileName.split('.')[fileName.split('.').length - 1];} catch (Exception e) { return null;} }

以上就是Java 讀取網絡圖片存儲到本地并生成縮略圖的詳細內容,更多關于Java 圖片存儲到本地并生成縮略圖的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲制服欧美另类| 久久国内精品| 中文字幕人成乱码在线观看 | 亚洲91网站| 欧美视频精品全部免费观看| 亚洲小说春色综合另类电影| 亚洲三级在线| 日本中文字幕一区二区| 精品欧美激情在线观看| 欧美亚洲国产精品久久| 欧美亚洲三级| 成人国产综合| 日韩精品乱码av一区二区| 日本h片久久| 日本视频一区二区| 99精品视频在线| 六月婷婷一区| 蜜臀av国产精品久久久久| 欧美a级一区二区| 99国产精品免费视频观看| 亚洲高清成人| 另类亚洲自拍| 国产欧美三级| 99久久婷婷| 美女毛片一区二区三区四区 | 欧美日韩国产探花| 国产精品久一| 日韩高清一区在线| 亚洲丝袜啪啪| 成人午夜在线| 夜夜嗨一区二区三区| 亚洲国产专区| 国产探花一区| av不卡免费看| 欧美日韩在线观看首页| 国产suv精品一区二区四区视频| 欧美精品一区二区三区精品| 国产精品午夜av| 在线亚洲国产精品网站| 精品国产不卡一区二区| 精品国产乱码久久久久久1区2匹| 欧美.日韩.国产.一区.二区| 国产精品免费不| 樱桃成人精品视频在线播放| 精品淫伦v久久水蜜桃| 黄色成人精品网站| 日本午夜精品久久久| 国产中文字幕一区二区三区| av成人国产| 国产一区二区三区亚洲综合| 美女91精品| 久久久久久网| 日韩欧美2区| 日本精品不卡| 欧美精选一区二区三区| 麻豆久久久久久久| 日韩国产一区二| 丝袜国产日韩另类美女| | 天堂av在线| 日韩中文字幕亚洲一区二区va在线 | 日韩在线一区二区| 久久精品免视看国产成人| 精品一区亚洲| 青青国产91久久久久久| 久久国产电影| 国产精品99精品一区二区三区∴ | 日韩在线二区| 日韩一区二区三区四区五区| 欧洲亚洲一区二区三区| 婷婷精品在线| 欧美成人精品| 久久一区视频| 亚洲精品少妇| 999精品在线| 欧美a一区二区| 视频一区中文字幕精品 | 亚洲69av| 石原莉奈一区二区三区在线观看| 91精品国产91久久久久久黑人| 荡女精品导航| 麻豆国产精品| 麻豆免费精品视频| 国产精品日韩精品在线播放| 国产亚洲高清在线观看| 日韩精品免费一区二区夜夜嗨 | 丝袜亚洲另类欧美| 日韩三级久久| 欧美日韩中文字幕一区二区三区 | 亚洲a级精品| 亚洲精品少妇| 亚洲精品三级| 国产精品普通话对白| 国产一区调教| 欧美黄色精品| 日韩av资源网| 亚洲精品看片| 香蕉久久久久久久av网站| 99香蕉国产精品偷在线观看| 日韩一区二区中文| 91精品国产福利在线观看麻豆| 999国产精品视频| 欧美日韩在线播放视频| 91久久国产| 美女精品网站| 日韩欧美2区| 国产精品麻豆成人av电影艾秋| 欧美激情99| 亚洲国产福利| 欧美 日韩 国产一区二区在线视频 | 蜜臀av国产精品久久久久| 视频一区视频二区在线观看| 美日韩精品视频| 日韩精品视频中文字幕| 国产乱码精品一区二区三区亚洲人| 国产精品亚洲成在人线| 精品视频一区二区三区在线观看| 国产一区调教| 亚洲视频综合| 亚洲永久字幕| 色8久久久久| 久久天堂影院| 久久高清免费| 亚洲天堂免费| 国产精品99久久免费| аⅴ资源天堂资源库在线| 免费av一区| 日韩精品视频中文字幕| 麻豆91小视频| 欧美日韩激情| 日本午夜精品久久久久| 国内精品伊人| 亚洲一区久久| 国产精品igao视频网网址不卡日韩 | 在线综合亚洲| 欧美一级二级视频| 国产精品精品| 午夜久久美女| 奇米狠狠一区二区三区| 国产成人精品一区二区三区视频| 久久激情网站| 亚洲精品成a人ⅴ香蕉片| 精品国产一区二区三区av片| 精品捆绑调教一区二区三区| 亚洲一区二区三区高清| 国产九一精品| 日韩精品不卡一区二区| 亚洲在线国产日韩欧美| 国产精品蜜月aⅴ在线| 久久精品主播| 天海翼精品一区二区三区| 国产网站在线| 亚洲视频二区| 超碰在线99| 日韩中文字幕亚洲一区二区va在线 | 亚洲精品电影| 久久国产精品免费一区二区三区| 91av亚洲| 日本不卡视频在线| 999久久久免费精品国产| 欧美日韩一区二区三区四区在线观看 | 久久99久久久精品欧美| 久久激情婷婷| 久久精品99国产精品| 99久久夜色精品国产亚洲1000部| 欧美日韩亚洲三区| 久久精品高清| 国产乱人伦精品一区| 欧美在线资源| 精品中文在线| 日韩欧美激情| 亚洲国产不卡| 色欧美自拍视频| 国产精品极品在线观看| 一本大道色婷婷在线| 视频一区视频二区中文字幕| 91亚洲一区| 国产亚洲人成a在线v网站| 激情婷婷亚洲| 久久伊人久久| 亚洲精品成a人ⅴ香蕉片| 日韩精品一区二区三区免费观看| 欧美在线黄色| 黄色亚洲在线| 另类专区亚洲| 国产精品一区二区三区美女| 午夜亚洲一区| 欧美aa在线观看| 国产精品亚洲综合久久| 热久久久久久久| 国产在线观看www| 国产日韩中文在线中文字幕| 在线综合亚洲| 亚洲高清成人| 国产精品久久久久av电视剧| 久久影院资源站| 国产调教精品| 91九色综合| 亚洲免费观看高清完整版在线观| 婷婷综合亚洲|