Changeset 8762 in josm for trunk/src/org
- Timestamp:
- 2015-09-17T19:12:34+02:00 (9 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 1 deleted
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ThumbsLoader.java
r8510 r8762 9 9 import java.awt.geom.AffineTransform; 10 10 import java.awt.image.BufferedImage; 11 import java.io.ByteArrayOutputStream; 12 import java.io.File; 13 import java.io.IOException; 11 14 import java.util.ArrayList; 12 15 import java.util.List; 13 16 17 import javax.imageio.ImageIO; 18 19 import org.apache.commons.jcs.access.behavior.ICacheAccess; 14 20 import org.openstreetmap.josm.Main; 15 import org.openstreetmap.josm.io.CacheFiles; 21 import org.openstreetmap.josm.data.cache.BufferedImageCacheEntry; 22 import org.openstreetmap.josm.data.cache.JCSCacheManager; 16 23 import org.openstreetmap.josm.tools.ExifReader; 17 24 … … 23 30 private GeoImageLayer layer; 24 31 private MediaTracker tracker; 25 private CacheFilescache;32 private ICacheAccess<String , BufferedImageCacheEntry> cache; 26 33 private boolean cacheOff = Main.pref.getBoolean("geoimage.noThumbnailCache", false); 27 34 … … 30 37 this.data = new ArrayList<>(layer.data); 31 38 if (!cacheOff) { 32 cache = new CacheFiles("geoimage-thumbnails", false); 33 cache.setExpire(CacheFiles.EXPIRE_NEVER, false); 34 cache.setMaxSize(120, false); 39 try { 40 cache = JCSCacheManager.getCache("geoimage-thumbnails", 0, 120, Main.pref.getCacheDirectory().getPath() + File.separator + "geoimage-thumbnails"); 41 } catch (IOException e) { 42 Main.warn("Failed to initialize cache for geoimage-thumbnails"); 43 Main.warn(e); 44 } 35 45 } 36 46 } … … 61 71 final String cacheIdent = entry.getFile()+":"+maxSize; 62 72 63 if (!cacheOff) { 64 BufferedImage cached = cache.getImg(cacheIdent); 65 if (cached != null) { 66 Main.debug(" from cache"); 67 return cached; 73 if (!cacheOff && cache != null) { 74 try { 75 BufferedImageCacheEntry cacheEntry = cache.get(cacheIdent); 76 if (cacheEntry != null && cacheEntry.getImage() != null) { 77 Main.debug(" from cache"); 78 return cacheEntry.getImage(); 79 } 80 } catch (IOException e) { 81 Main.warn(e); 68 82 } 69 83 } … … 118 132 } 119 133 120 if (!cacheOff) { 121 cache.saveImg(cacheIdent, scaledBI); 134 if (!cacheOff && cache != null) { 135 try (ByteArrayOutputStream output = new ByteArrayOutputStream()) { 136 ImageIO.write(scaledBI,"png", output); 137 cache.put(cacheIdent, new BufferedImageCacheEntry(output.toByteArray())); 138 } catch (IOException e) { 139 Main.warn("Failed to save geoimage thumb to cache"); 140 Main.warn(e); 141 } 122 142 } 123 143
Note:
See TracChangeset
for help on using the changeset viewer.