iOS自动生成对应大小的icon图片代码

来源:互联网 发布:大数据imf 编辑:程序博客网 时间:2024/06/03 04:16

-(void)beginGenerateIconsWithImage:(UIImage *)img

{

    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)objectAtIndex:0];

    path = [path stringByAppendingPathComponent:@"CompressedIcons"];

    

    NSArray *array = @[@29,@58,@87,@40,@80,@120,@180,@76,@152,@1024];

    

    for (int i =0; i < array.count; i ++) {

        int sizeS = [[arrayobjectAtIndex:i] intValue];

         UIImage *imgFinal = [selfcompressImage:img withSize:CGSizeMake(sizeS, sizeS)];

        [self savePicture:imgFinalwithPath:path andFileName:[NSStringstringWithFormat:@"%i_%i.png",sizeS,sizeS]];

    }

}


#pragma mark 保存图片到路径

-(BOOL)savePicture:(UIImage *)picture withPath:(NSString *)path andFileName:(NSString *)fileName

{

    NSFileManager *fileManager = [NSFileManagerdefaultManager];

    

    if (![fileManager fileExistsAtPath:path]) {

        NSError *error;

        BOOL ifSuccess = [fileManagercreateDirectoryAtPath:path withIntermediateDirectories:YESattributes:nilerror:&error];

        if (!ifSuccess) {

            NSLog(@"Compresse Fialed");

        }

    }

    

    NSData *data = UIImagePNGRepresentation(picture);

    

    return [data writeToFile:[path stringByAppendingPathComponent:fileName]atomically:YES];

}


#pragma mark 压缩图片到对应尺寸

-(UIImage *)compressImage:(UIImage *)sourceImg withSize:(CGSize)size

{

    UIGraphicsBeginImageContext(size);

    CGRect rect  = {{0,0},size};

    [sourceImg drawInRect:rect];

    

    UIImage *compressedImg =UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    

    return compressedImg;

}

0 0