我有一个从透明 PNG(500 像素 x 500 像素)读取的 UIImage。在图像的某处,有一张我想裁剪并保存为单独的 UIImage 的图片。我还想根据新裁剪的矩形的左侧和顶部有多少透明像素来存储 X 和 Y 坐标。
我可以使用以下代码裁剪图像:
- (UIImage *)cropImage:(UIImage *)image atRect:(CGRect)rect
{
double scale = image.scale;
CGRect scaledRect = CGRectMake(rect.origin.x*scale,rect.origin.y*scale,rect.size.width*scale,rect.size.height*scale);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], scaledRect);
UIImage *cropped = [UIImage imageWithCGImage:imageRef scale:scale orientation:image.imageOrientation];
CGImageRelease(imageRef);
return cropped;
}
这实际上切断了顶部和左侧的透明像素:S(如果我也能够裁剪右侧和底部的像素,那就太好了!)。然后它将图像的其余部分调整为我指定的矩形。不幸的是,虽然我需要剪切图像中间的图片并且我需要能够动态的大小。
现在已经为此苦苦挣扎了几个小时。有任何想法吗?