我正在尝试将旋转和缩放的UIImageView保存为位置中的UIImage,并使用用户编辑的缩放比例。但我只能设法保存原始图像,因为它是在编辑之前。如何以相同的缩放和旋转保存UIImageView中显示的图像?我已经读过我需要使用UIGraphicsGetCurrentContext()但是我得到了相同的原始图像保存(但翻转)而不是旋转的图像!建议和提示将非常有用。 先感谢您。 人
(UIImage *)getImage
{
CGSize size = CGSizeMake(250, 250);
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGMutablePathRef path = CGPathCreateMutable();
// Add circle to path
CGPathAddEllipseInRect(path, NULL, CGRectMake(0, 0, 250, 250));
CGContextAddPath(context, path);
// ****************** touchImageView is my UIImageView ****************//
CGContextDrawImage(context, CGRectMake(0, 0, 250, 250), [touchImageView image].CGImage);
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// Clip to the circle and draw the logo
CGContextClip(context);
UIGraphicsEndImageContext();
return scaledImage;
}
答案 0 :(得分:1)
基于视图的变换应用于上下文的输出而不是上下文本身。我相信你必须使用link text核心图形的特定功能来缩放和旋转图像上下文。
(我可能是错的。我不记得过去我是怎么做到的。用一粒盐来做这件事。)
答案 1 :(得分:1)
我发布的代码中没有任何可以旋转图像的内容。你忘记添加了吗?
看起来你走在正确的轨道上。现在,您应该使用转换例程CGContextScaleCTM
和CGContextRotateCTM
来适当地修改转换矩阵,然后(为了避免翻转),使用-[UIImage drawAtPoint:]
绘制UIImage而不是使用{{1 }}