// // Created by Yaotian on 2/7/14. // Copyright (c) 2014 Kollway Mobile. All rights reserved. // #import "KWMImageUtil.h" #import "KWMStringUtil.h" @implementation KWMImageUtil { } + (UIImage *)createTransparentImage { UIImage *result = nil; CGRect rect = CGRectMake(0, 0, 1, 1); UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0); result = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return result; } + (UIImage *)createColorImage:(UIColor *)color pixelSize:(CGSize)size { UIImage *result = nil; CGRect rect = CGRectMake(0, 0, 0, 0); rect.size = size; UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0); [color setFill]; UIRectFill(rect); // Fill it with your color result = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return result; } + (UIImage *)createColorImage:(UIColor *)color { return [self createColorImage:color pixelSize:CGSizeMake(1, 1)]; } + (UIImage *)createGradientImage:(UIColor *)startColor endColor:(UIColor *)endColor size:(CGSize)size { UIImage *result = nil; UIGraphicsBeginImageContextWithOptions(size, NO, 0.0); CGContextRef currentContext = UIGraphicsGetCurrentContext(); CGColorSpaceRef rgbColorspace = CGColorSpaceCreateDeviceRGB(); size_t num_locations = 2; CGFloat locations[2] = { 0.0, 1.0 }; CGFloat r0; CGFloat g0; CGFloat b0; CGFloat a0; CGFloat r1; CGFloat g1; CGFloat b1; CGFloat a1; [startColor getRed:&r0 green:&g0 blue:&b0 alpha:&a0]; [endColor getRed:&r1 green:&g1 blue:&b1 alpha:&a1]; CGFloat components[8] = { r0, g0, b0, a0, // Start color r1, g1, b1, a1 }; // End color CGGradientRef gradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations); CGContextDrawLinearGradient(currentContext, gradient, CGPointMake(0, 0), CGPointMake(0, size.height), 0); result = UIGraphicsGetImageFromCurrentImageContext(); CGGradientRelease(gradient); CGColorSpaceRelease(rgbColorspace); return result; } // 计算文件大小,单位KB + (float)fileSizeAtPath:(NSString*)filePath{ NSFileManager *manager = [NSFileManager defaultManager]; if ([manager fileExistsAtPath:filePath]){ return [[manager attributesOfItemAtPath:filePath error:nil] fileSize]/1024.0; } return 0; } + (BOOL)saveJPGImageToFile:(NSString *)filePath image:(UIImage *)image { NSData *data = UIImageJPEGRepresentation(image, .8f); return [data writeToFile:filePath atomically:YES]; } + (BOOL)savePNGImageToFile:(NSString *)filePath image:(UIImage *)image { NSData *data = UIImagePNGRepresentation(image); return [data writeToFile:filePath atomically:YES]; } + (UIImage *)getImageFromFile:(NSString *)filePath { NSData *data = [NSData dataWithContentsOfFile:filePath]; return [UIImage imageWithData:data]; } + (void)deleteLocalImage:(NSString *)imagePath { if (imagePath == nil || imagePath.length <= 0) { return; } NSFileManager *fileManager = [NSFileManager defaultManager]; if ([fileManager fileExistsAtPath:imagePath]) { NSError *error; [fileManager removeItemAtPath:imagePath error:&error]; } } + (UIImage *)imageWithImage:(UIImage *)image scaledToPixelSize:(CGSize)newSize{ UIGraphicsBeginImageContext(newSize); [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; } + (UIImage *)imageAfterZoom:(UIImage *)image scale:(float)scale { float newWidth = image.size.width * scale; float newHeight = image.size.height * scale; CGSizeMake(newWidth, newHeight); return [self imageWithImage:image scaledToPixelSize:CGSizeMake(newWidth, newHeight)]; } + (NSArray *)checkImage:(NSArray *)imagesArray{ NSMutableArray *images = [[NSMutableArray alloc] initWithCapacity:100]; if(imagesArray == nil){ return [images copy]; } for(KWMImage *image in imagesArray){ if(image!=nil && ![KWMStringUtil isEmpty:image.value]){ if( [image.value rangeOfString:@"jpg" options:NSCaseInsensitiveSearch].location!=NSNotFound || [image.value rangeOfString:@"jpeg" options:NSCaseInsensitiveSearch].location!=NSNotFound || [image.value rangeOfString:@"png" options:NSCaseInsensitiveSearch].location!=NSNotFound || [image.value rangeOfString:@"gif" options:NSCaseInsensitiveSearch].location!=NSNotFound ){ [images addObject:image]; } } } return [images copy]; } + (NSString *)getProductImageUrl:(NSNumber *)productId ImageSize:(NSInteger)ImageSize{ if(productId == nil){ return nil; } //https://og95hd6ay.qnssl.com/5411820230-1.jpg NSString *domain = Image_Domain; NSString *imageUrl = [NSString stringWithFormat:@"https://%@/%@-1.jpg",domain,productId.stringValue]; NSLog(@"1-----%@", imageUrl); if(ImageSize == BigImage){ return [self getImage:1080 height:1080 image:imageUrl]; }else if(ImageSize == SmallImage){ return [self getImage:300 height:300 image:imageUrl]; }else{ return [self getImage:500 height:500 image:imageUrl]; } } //content:5411820230-1.jpg 商品详细获取图片的方法 + (NSString *)getProductImageUrl2:(NSString *)content ImageSize:(NSInteger)ImageSize{ if([KWMStringUtil isEmpty:content]){ return nil; } //https://og95hd6ay.qnssl.com/5411820230-1.jpg NSString *domain = Image_Domain; NSString *imageUrl = [NSString stringWithFormat:@"https://%@/%@",domain,content]; NSLog(@"2-----%@", imageUrl); if(ImageSize == BigImage){ return [self getImage:1000 height:1000 image:imageUrl]; }else if(ImageSize == SmallImage){ return [self getImage:300 height:300 image:imageUrl]; }else{ return [self getImage:500 height:500 image:imageUrl]; } } + (NSString *)getProductImageUrl3:(NSNumber *)productId ImageSize:(NSInteger)ImageSize Position:(NSInteger)Position{ if(productId == nil){ return nil; } //https://og95hd6ay.qnssl.com/5411820230-1.jpg NSString *domain = Image_Domain; NSString *imageUrl = [NSString stringWithFormat:@"https://%@/%@-%ld.jpg",domain,productId.stringValue,(long)Position]; NSLog(@"3-----%@", imageUrl); if(ImageSize == BigImage){ return [self getImage:1080 height:1080 image:imageUrl]; }else if(ImageSize == SmallImage){ return [self getImage:300 height:300 image:imageUrl]; }else{ return [self getImage:500 height:500 image:imageUrl]; } } +(NSString *)getImage:(NSInteger)width height:(NSInteger)height image:(NSString*)image{ NSString *imageUrl = @""; // // NSCalendar *calendar = [NSCalendar currentCalendar]; // NSDate *now = [NSDate date]; // NSDateComponents *components = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:now]; // NSDate *startDate = [calendar dateFromComponents:components]; // long long time = [startDate timeIntervalSince1970]; if([KWMStringUtil isEmpty:image]){ return imageUrl; } NSDateFormatter *dateformat = [[NSDateFormatter alloc] init]; [dateformat setDateFormat:@"YYYY-MM-dd"]; NSString *today = [dateformat stringFromDate:[NSDate date]]; [dateformat setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; NSDate *date = [dateformat dateFromString:[NSString stringWithFormat:@"%@ 00:00:00",today]]; NSTimeInterval interval = [date timeIntervalSince1970]/100; long long time = interval; imageUrl = [[NSString alloc] initWithFormat:@"%@?imageView2/1/w/%ld/h/%ld&_=%llu",image,(long)width,(long)height,time]; NSLog(@"---4--%@", imageUrl); return imageUrl; } @end