在我的应用程序中,我正在应用不同类型的转换,例如向左旋转,向右旋转,翻转垂直,水平翻转到UIImageview
。应用这些操作后,UIImageview
的位置会发生变化。我希望将此更改的图像分配给其他视图,而不是原始图像。当我将imageview.image
分配给另一个视图时,它正在分配原始图像。我怎么能纠正这个?
正如David所建议的那样。我正在为左旋转应用以下代码
//rotation left;
int x1=ivPhoto.frame.origin.x;
int y1=ivPhoto.frame.origin.y;
UIGraphicsBeginImageContext(ivPhoto.image.size);
CGAffineTransform transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(degrees2));
CGContextConcatCTM(UIGraphicsGetCurrentContext(), transform);
[ivPhoto.image drawInRect:CGRectMake(x1,y1,ivPhoto.frame.size.width, ivPhoto.frame.size.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
ivPhoto.image=newImage;
但我没有得到旋转的图像。图像处于原始位置
答案 0 :(得分:0)
转换完成后会捕获更新的图像:
CGSize fittingSize = yourImgView.frame.size;
UIGraphicsBeginImageContext(fittingSize);
[yourImgView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImahe *capImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
现在将这些capImage分配给另一个带有变换图像的UIImageView
答案 1 :(得分:0)
您应该在上下文中进行更改,并在完成后将其保存到UIImage。然后在imageview中设置该图像:
UIGraphicsBeginImageContext(sizeOfImage);
CGAffineTransform transform = CGAffineTransformIdentity;
等等
CGContextConcatCTM(UIGraphicsGetCurrentContext(), transform);
[imageView.image drawInRect:CGRectMake(position.x, position.y, size.width, size.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();