ImageHandler.m 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //
  2. // ImageHandler.m
  3. // TumblrDownloader
  4. //
  5. // Created by HonorLee on 16/1/21.
  6. // Copyright © 2016年 HonorLee. All rights reserved.
  7. //
  8. #import "ImageHandler.h"
  9. @implementation ImageHandler
  10. +(NSString *)getAndSaveThumbImageFromURLandSetToImageView:(NSString *)imagePath saveToName:(NSString *)fileName setToImage:(UIImageView *)imageView{
  11. UIImage *oldImg;
  12. UIImage *newImg;
  13. NSData *imgData;
  14. NSString *filePath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"/Library/Caches/%@.jpg",fileName]];
  15. NSLog(@"%@",filePath);
  16. BOOL needSave = NO;
  17. BOOL onError = NO;
  18. NSError * error;
  19. dispatch_group_t disG = dispatch_group_create();
  20. dispatch_group_enter(disG);
  21. if([imagePath containsString:@"http"]){
  22. needSave = YES;
  23. imgData = [NSData dataWithContentsOfURL:[NSURL URLWithString:imagePath]];
  24. }else{
  25. imgData = [NSData dataWithContentsOfFile:filePath options:NSDataReadingMappedIfSafe error:&error];
  26. }
  27. if(error)
  28. {
  29. NSLog(@"%@",error);
  30. }
  31. if(imgData){
  32. if(needSave){
  33. oldImg = [UIImage imageWithData:imgData];
  34. UIGraphicsBeginImageContext(CGSizeMake(60, 60));
  35. [oldImg drawInRect:CGRectMake(0, 0, 60, 60)];
  36. newImg = UIGraphicsGetImageFromCurrentImageContext();
  37. UIGraphicsEndImageContext();
  38. }else{
  39. NSLog(@"%@",imgData);
  40. newImg = [UIImage imageWithData:imgData];
  41. }
  42. }else{
  43. onError = YES;
  44. }
  45. dispatch_group_leave(disG);
  46. dispatch_group_notify(disG, dispatch_get_main_queue(), ^{
  47. if(!onError) [imageView setImage:newImg];
  48. NSLog(@"123");
  49. if(needSave){
  50. // [UIImageJPEGRepresentation(newImg, 1.0) writeToFile:filePath options:nil error:&error atomically:YES];
  51. NSFileManager *fs = [NSFileManager defaultManager];
  52. BOOL isDir;
  53. [fs fileExistsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"/Library/Caches"] isDirectory:&isDir];
  54. NSLog(@"%@",isDir);
  55. NSError *err;
  56. [UIImageJPEGRepresentation(newImg, 1.0) writeToFile:filePath options:NSDataWritingAtomic error:&err];
  57. NSLog(@"%@",err);
  58. }
  59. });
  60. return filePath;
  61. }
  62. @end