Path图片缓存实现方法

对于以图片为主的应用来说(比如Path),传统的从硬盘单个加载图片方法太慢以致于会影响到应用的整体性能表现,尤其是需要滚动加载的。Fast Image Cache刚好可以解决这个问题。Fast Image Cache是iOS 应用中一个高效的,快速的图片存储和检索方法。对于很多优秀的应用来说,快速运行和平缓滚动是用户体验中重要的一部分,而Fast Image Cache可以简单化这种实现。
 
附件:    FastImageCache-master.zip (1695 K) 
 
Fast Image Cache做些什么
将类似尺寸和风格的图片储存在一起
将图片数据存到硬盘中
加载图片比传统方法更快
基于常用文件自动管理过期的缓存
利用一个基于model的方法来储存并检索图片
在将图片储存到缓存之前对图片进行加工
 
要求
iOS5.0以及以上,同时需要以下框架:
Foundation
Core Graphics
UIKit
 
注意:Fast Image Cache不使用ARC。如果你的工程使用ARC,需要先关闭
 
安装
从附件中的FastImageCache 根目录中,复制FastImageCache子目录到Xcode工程中。
使用image cache的时候导入FICImageCache.h文件
使用image Cache需要先对它进行配置:请参照README.md的内容或者https://github.com/path/FastImageCache
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是springboot实现网页图片缓存到本地的步骤: 1. 在pom.xml文件中添加以下依赖: ``` <!-- Spring Boot Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot Thymeleaf --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- Apache Commons IO --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> ``` 2. 创建一个名为FileUtil的工具类,用于保存图片到本地文件系统中: ``` import org.apache.commons.io.FileUtils; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; public class FileUtil { public static void saveImage(MultipartFile image, String path, String filename) throws IOException { File file = new File(path); if (!file.exists()) { file.mkdirs(); } FileUtils.copyInputStreamToFile(image.getInputStream(), new File(path, filename)); } } ``` 3. 在Controller中添加以下方法,用于下载网页中的图片并保存到本地: ``` import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.net.URL; import java.util.List; import java.util.UUID; @Controller public class HomeController { @Value("${image.path}") private String imagePath; @GetMapping("/") public String index() { return "index"; } @PostMapping("/") public String uploadImages(@RequestParam("url") String url, Model model) throws IOException { List<String> imageUrls = HTMLUtil.getImageUrls(url); for (String imageUrl : imageUrls) { URL imageLink = new URL(imageUrl); String imageFileType = imageUrl.substring(imageUrl.lastIndexOf('.') + 1); String imageName = UUID.randomUUID().toString() + "." + imageFileType; FileUtil.saveImage(imageLink.openStream(), imagePath, imageName); } model.addAttribute("message", "Images saved successfully"); return "index"; } } ``` 4. 在application.properties文件中添加以下配置,用于指定保存图片的目录: ``` image.path=/tmp/images/ ``` 5. 创建一个名为HTMLUtil的工具类,用于从网页中提取图片的链接: ``` import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class HTMLUtil { public static List<String> getImageUrls(String url) throws IOException { Document doc = Jsoup.connect(url).get(); List<String> imageUrls = new ArrayList<>(); doc.select("img").forEach(element -> { String src = element.attr("src"); if (!src.startsWith("http")) { src = "http://" + src; } imageUrls.add(src); }); return imageUrls; } } ``` 现在,当用户提交一个网址时,程序会提取出网页中的所有图片,将它们缓存到本地目录中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值