【问题标题】:Cropped image is getting zoomed in iPhone?裁剪的图像在 iPhone 中被放大?
【发布时间】:2013-04-10 13:58:34
【问题描述】:

我有一个应用程序,我将我的图像(360,480)缩放到(320,480),然后裁剪图像。它工作正常。但是当我们得到图像时,它会得到一点缩放类型的图像。投影到前面。这是我的做法。`

[self imageWithImage:(UIImage *)image scaledToSize:CGSizeMake(160.0f,240.0f)];

我的辩解是-

-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    //UIGraphicsBeginImageContext(newSize);
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();

    [self cropimage:newImage];
    return newImage;
}

在cropimage中我正在这样做-

-(void)cropimage:(UIImage *)image
{

   CGRect cropRect = CGRectMake(20,100,280,200);
     CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect);
    UIImage* croppedImage = [UIImage imageWithCGImage:imageRef];
         CGImageRelease(imageRef);

    NSData *pictureData = [NSData dataWithData:UIImagePNGRepresentation(croppedImage)];
}

谁能找出我的方法有什么问题?

【问题讨论】:

  • 我的第一个猜测:原始uiimage的比例是否等于1.0,如果不是,您可能需要相应地修改cropRect。

标签: iphone ios objective-c ipad


【解决方案1】:

尝试为比例传递 image.scale 而不是 0.0 以强制它使用传入的图像比例。

-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    //UIGraphicsBeginImageContext(newSize);
    UIGraphicsBeginImageContextWithOptions(newSize, NO, image.scale);
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
    UIGraphicsEndImageContext();

    [self cropimage:newImage];
    return newImage;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多