NewsBlur/media/iphone/Classes/Utilities.m

71 lines
2.3 KiB
Mathematica
Raw Normal View History

//
// Utilities.m
// NewsBlur
//
// Created by Samuel Clay on 10/17/11.
// Copyright (c) 2011 NewsBlur. All rights reserved.
//
#import "Utilities.h"
@implementation Utilities
static NSMutableDictionary *imageCache;
+ (void)saveImage:(UIImage *)image feedId:(NSString *)filename {
if (!imageCache) {
imageCache = [[NSMutableDictionary dictionary] retain];
}
// Save image to memory-based cache, for performance when reading.
// NSLog(@"Saving %@", [imageCache allKeys]);
[imageCache setObject:image forKey:filename];
}
+ (UIImage *)getImage:(NSString *)filename {
UIImage *image;
image = [imageCache objectForKey:filename];
if (!image) {
// Image not in cache, search on disk.
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDirectory = [paths objectAtIndex:0];
NSString *path = [cacheDirectory stringByAppendingPathComponent:filename];
image = [UIImage imageWithContentsOfFile:path];
}
if (image) {
return image;
} else {
return [UIImage imageNamed:@"world.png"];
}
}
+ (void)saveimagesToDisk {
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_async(queue, [[^{
2012-06-26 11:45:42 -07:00
for (NSString *filename in [imageCache allKeys]) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDirectory = [paths objectAtIndex:0];
NSString *path = [cacheDirectory stringByAppendingPathComponent:filename];
// Save image to disk
UIImage *image = [imageCache objectForKey:filename];
[UIImageJPEGRepresentation(image, 1.0) writeToFile:path atomically:YES];
}
} copy] autorelease]);
}
2012-07-11 18:08:07 -07:00
+ (UIImage *)roundCorneredImage: (UIImage*) orig radius:(CGFloat) r {
UIGraphicsBeginImageContextWithOptions(orig.size, NO, 0);
[[UIBezierPath bezierPathWithRoundedRect:(CGRect){CGPointZero, orig.size}
cornerRadius:r] addClip];
[orig drawInRect:(CGRect){CGPointZero, orig.size}];
UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}
@end