iOS每日一记之------常用小工具代码合集

#pragma mark - 图片调整

//调整图片至指定大小,等比缩放
+(UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize
{
    UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scaleSize, image.size.height * scaleSize));
    [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height * scaleSize)];
    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;

}

//调整图片至指定大小,以CGSize与图片的最小比例值进行等比缩放
+(UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)scaleSize
{
    float w = scaleSize.width / image.size.width;
    float h = scaleSize.height / image.size.height;
    float x = w > h ? h : w;
    
    UIGraphicsBeginImageContext(CGSizeMake(image.size.width * x, image.size.height * x));
    [image drawInRect:CGRectMake(0, 0, image.size.width * x, image.size.height * x)];
    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
}


//调整图片至指定大小,以CGSize与图片的最小比例值进行等比缩放
+(UIImage *)scaleImage:(NSString *)imageName toFixed:(CGSize)scaleSize
{
    UIImage *image = [UIImage imageNamed:imageName];
    return [self scaleImage:image toSize:scaleSize];
}

//调整图片至指定大小
+(UIImage *)makeImageSize: (NSString *)imageName toFixed:(CGSize)scaleSize
{
    UIImage *image = [UIImage imageNamed:imageName];
    UIImage *scaledImage = [self makeImageSize:image fixed:scaleSize];
    return scaledImage;
}


//调整图片至指定大小
+(UIImage *)makeImageSize: (UIImage *)image fixed:(CGSize)scaleSize
{
    UIGraphicsBeginImageContext(scaleSize);
    [image drawInRect:CGRectMake(0, 0, scaleSize.width, scaleSize.height)];
    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return scaledImage;
}

/**
 *  保存图片到本地
 **/
+(void) saveImageToLocal:(UIImage *)image forKey:(NSString *)key
{
    NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
    [userDef setObject:UIImagePNGRepresentation(image) forKey:key];
}


/**
 *  截屏
 **/
+ (UIImage *) getScreenToImage:(UIView *)view area:(CGRect)rect
{
    UIGraphicsBeginImageContext(rect.size);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *parentImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    if(view.frame.size.width > rect.size.width || view.frame.size.height > rect.size.height)
    {
        CGImageRef imageRef = parentImage.CGImage;
        CGImageRef subImageRef = CGImageCreateWithImageInRect(imageRef, rect);
        
        UIGraphicsBeginImageContext(rect.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        CGContextDrawImage(context, rect, subImageRef);
        
        UIImage* image = [UIImage imageWithCGImage:subImageRef];
        UIGraphicsEndImageContext();
        CFRelease(subImageRef);
        return image;
    }else{
        return parentImage;
    }
}

/**
 *  截断图片到指定大小
 **/
+ (UIImage *) catOffImage:(UIImage *)image toSize:(CGSize)size
{
    CGRect rect = CGRectMake(0, 0, size.width, size.height);
    CGImageRef subImageRef = CGImageCreateWithImageInRect(image.CGImage, rect);
    CGRect smallBounds = CGRectMake(0, 0, CGImageGetWidth(subImageRef), CGImageGetHeight(subImageRef));
    
    UIGraphicsBeginImageContext(smallBounds.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextDrawImage(context, smallBounds, subImageRef);
    UIImage* smallImage = [UIImage imageWithCGImage:subImageRef];
    
    UIGraphicsEndImageContext();
    CFRelease(subImageRef);
    return smallImage;
}

//保存图片到目录  .../xxx/xxx.jpg
+ (void)saveImage:(UIImage *)image toPath:(NSString *)path {
    [UIImageJPEGRepresentation(image, 1.0) writeToFile:path atomically:YES];
}

// 根据图片类型将图片保存到指定目录下
+ (BOOL)saveImage:(UIImage *)image toPath:(NSString *)path withName:(NSString *)imageName andExtension:(NSString *)extension {
    if ([[extension lowercaseString] isEqualToString:@"png"]) {
        NSLog(@"保存为png格式 ------------");
        [UIImagePNGRepresentation(image) writeToFile:[path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] options:NSAtomicWrite error:nil];
    } else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) {
        NSLog(@"保存为jpg格式 ------------");
        [UIImageJPEGRepresentation(image, 1.0) writeToFile:[path stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"jpg"]] options:NSAtomicWrite error:nil];
    } else {
        NSLog(@"Image Save Failed\nExtension: (%@) is not recognized, use (PNG/JPG)", extension);
        return NO;
    }
    NSLog(@"保存图片成功");
    
    return YES;
}

// 将两张图片合成一张图片
+ (UIImage *)compoundImageWithPhoto:(UIImage *)photo andDoodle:(UIImage *)doodle {
    UIGraphicsBeginImageContext(photo.size);
    // Draw image1
    [photo drawInRect:CGRectMake(0, 0, photo.size.width, photo.size.height)];
    // Draw image2
    [doodle drawInRect:CGRectMake(0, 0, doodle.size.width, doodle.size.height)];
    UIImage *compoundImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return compoundImage;
}



+ (BOOL)compressImage:(UIImage *)image AndSaveToPath:(NSString *)path SaveFileName:(NSString *)fileName andExtension:(NSString *)extension {
    BOOL result;
    NSData *imageCompressData;
    
    if ([[extension lowercaseString] isEqualToString:@"png"]) {
        imageCompressData = UIImagePNGRepresentation(image);
    } else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) {
        imageCompressData = UIImageJPEGRepresentation(image, kImageCompressionQualityDefault);
    } else {
        NSLog(@"Image Save Failed\nExtension: (%@) is not recognized, use (PNG/JPG)", extension);
        return NO;
    }
    
    NSString *fullPath = [NSString stringWithFormat:@"%@/%@.%@", path, fileName, [extension lowercaseString]];
    result = [imageCompressData writeToFile:fullPath atomically:YES];
    
    return result;
}

+ (UIImage *) addImage:(UIImage *)source toImage:(UIImage *)to {
    int width = (to.size.width < to.size.height) ? to.size.width : to.size.height;
    UIGraphicsBeginImageContext(CGSizeMake(width, width));
    //Draw image2
    [to drawInRect:CGRectMake(0, 0, width,width)];
    //Draw image1
    int imageWidth = width / 4;
    [source drawInRect:CGRectMake(width - imageWidth, width - imageWidth, imageWidth, imageWidth)];
    UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return resultImage;
}

#pragma mark - 网络请求

/**
 *  判断是否已联网
 **/
+(BOOL)isNetworkReachable{
    // Create zero addy
    struct sockaddr_in zeroAddress;
    bzero(&zeroAddress, sizeof(zeroAddress));
    zeroAddress.sin_len = sizeof(zeroAddress);
    zeroAddress.sin_family = AF_INET;
    
    // Recover reachability flags
    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
    SCNetworkReachabilityFlags flags;
    
    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
    CFRelease(defaultRouteReachability);
    
    if (!didRetrieveFlags)
    {
        return NO;
    }
    
    BOOL isReachable = flags & kSCNetworkFlagsReachable;
    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
    return (isReachable && !needsConnection) ? YES : NO;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值