iOS : How to get image with specific size from AssetsLibrary

标签 ios objective-c uiimage assetslibrary

我的应用程序有问题,希望得到您的帮助。我想从图库上传特定大小**(1200*1800)**的照片到服务器,我需要得到原始图像然后压缩它。

UIImage *image = [UIImage imageWithCGImage:[asset fullResolutionImage] scale:[asset scale] orientation:0];

不幸的是,如果原始图像大小大于 20M,我的应用程序将会崩溃。那么有什么办法可以直接从AssetsLibrary中获取特定大小的图片呢?

最佳答案

我只是放了一些有用的代码,我不确定但可能对你有帮助:

获取裁剪图像:

UIImage *croppedImg = nil;
CGRect cropRect = CGRectMake(AS YOu Need);
croppedImg = [self croppIngimageByImageName:self.imageView.image toRect:cropRect];

使用以下返回 UIImage 的方法(您想要的图像大小)

- (UIImage *)croppIngimageByImageName:(UIImage *)imageToCrop toRect:(CGRect)rect
    {
        //CGRect CropRect = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height+15);

        CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
        UIImage *cropped = [UIImage imageWithCGImage:imageRef];
        CGImageRelease(imageRef);

        return cropped;
    }

这里得到的是通过上述方法返回的Croped Image;

或调整大小

并且对于特定的 hightwidth 也使用以下方法和 image Resizing UIImage:

+ (UIImage*)resizeImage:(UIImage*)image withWidth:(int)width withHeight:(int)height
{
    CGSize newSize = CGSizeMake(width, height);
    float widthRatio = newSize.width/image.size.width;
    float heightRatio = newSize.height/image.size.height;

    if(widthRatio > heightRatio)
    {
        newSize=CGSizeMake(image.size.width*heightRatio,image.size.height*heightRatio);
    }
    else
    {
        newSize=CGSizeMake(image.size.width*widthRatio,image.size.height*widthRatio);
    }


    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

此方法返回 NewImage,具有您想要的特定大小。

关于iOS : How to get image with specific size from AssetsLibrary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17718185/

相关文章:

iOS:ActionSheetStringPicker successAction:错误的选择

ios - Autorotation 仅适用于模拟器而不适用于设备(​​IOS 7.1)

ios - 如何更改设置以在 Xcode 中导入 MetalPerformanceShaders

ios - 自定义 View Controller 转换偶尔崩溃

objective-c - PKAddPassPaymentRequest 无法发送请求

objective-c - 在 Mac XCode 项目中使用 libmediainfo

ios - UI图像方向问题

ios - 解析 - 从关系中获取对象

ios - 如何将图像裁剪成圆角

iphone - 是否可以以编程方式反转图像的颜色?