ios - drawInRect 不读取/保留 UIImageView 转换

标签 ios uiimageview cgaffinetransform drawinrect

我在 drawInRect 中捏合、平移或旋转 UIImageview 时遇到问题,转换没有被保留。

如何在 drawInRect 中保留变换?

我试过了但是不行:(

- (UIImage*) combineImage:(UIImageView *)selectedImage withOverlay:(UIImageView *)overlayImage
{
    /* Identify the region that needs to be cropped */
    CGRect viewForImgFrame = self.viewForImg.frame;
    NSLog(@"view %@", NSStringFromCGRect(viewForImgFrame));
    NSLog(@"selectedImage Img value %@",selectedImage);
    NSLog(@"overlayImage Img value %@",overlayImage);
    CGSize newImageSize =self.viewForImg.frame.size;
    NSLog(@"CGSize %@",NSStringFromCGSize(newImageSize));
    UIGraphicsBeginImageContextWithOptions(newImageSize, NO, 0.0); //retina res

   //[self.viewForImg.layer renderInContext:UIGraphicsGetCurrentContext()];

    [selectedImage.image drawInRect:CGRectMake(0, 0, selectedImage.frame.size.width, selectedImage.frame.size.height)];

    CGContextConcatCTM(UIGraphicsGetCurrentContext(), overlayImage.transform);

    [overlayImage.image drawInRect:CGRectMake(overlayImage.frame.origin.x, overlayImage.frame.origin.y, overlayImage.frame.size.width, overlayImage.frame.size.height)];


    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    NSData *imgData =  UIImageJPEGRepresentation(image, 0.9); //UIImagePNGRepresentation ( image ); // get JPEG representation
    UIImage * imagePNG = [UIImage imageWithData:imgData]; // wrap UIImage around PNG representation
    UIGraphicsEndImageContext();
    return imagePNG;
}

非常感谢任何评论。

最佳答案

你需要尝试

CGRectApplyAffineTransform(<#CGRect rect#>, <#CGAffineTransform t#>)

你的代码应该是这样的

CGContextConcatCTM(UIGraphicsGetCurrentContext(), overlayImage.transform);
CGRect rect = CGRectMake(overlayImage.frame.origin.x, overlayImage.frame.origin.y, overlayImage.frame.size.width, overlayImage.frame.size.height);
CGRect transformedRect = CGRectApplyAffineTransform(rect, overlayImage.transform);
[overlayImage.image drawInRect:transformedRect];

关于ios - drawInRect 不读取/保留 UIImageView 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19706419/

相关文章:

ios - 如何将 UIimage View 旋转到触摸屏幕的位置?

ios - 两点坐标之间的角度以相应地旋转图像

animation - 如何在 iOS 13 中隐藏带有动画的标签栏?

iphone - shouldAutorotateToInterfaceOrientation 但没有任何反应

iphone - 在 UIWebView 中加载具有透明背景的 pdf

objective-c - 无法为 UIImageView 设置图像

swift3 - swift 3 中 cgaffinetransformconcat 的语法?

ios - iOS YouTube YouTube API上传视频,如何记录错误的userInfo?

ios - ExtAudioFileSeek 后跟 ExtAudioFileRead 返回许多连续的 0 样本(不可能)

ios - UIImageView 无法识别点击手势