gpt4 book ai didi

ios - 如何从iOS中旋转,缩放和倒置的UIImageView中提取UIImage

转载 作者:行者123 更新时间:2023-12-01 16:45:15 27 4
gpt4 key购买 nike

我正在从图库中拍摄图像,并使用CGAffineTransform应用缩放,旋转和反转转换。最后,我将图像保存到图库。但是,已保存的图像具有白色矩形边界![带有白色背景的旋转UIImageView] [1]。

- (UIImage *)getTheTransformedOriginalImage:(UIImage *)aTransImage
{
CGAffineTransform transform = selImageView.transform;
CGPathRef rotatedImageRectPath = CGPathCreateWithRect(selImageView.frame, &transform);
CGRect boundingBox = CGPathGetBoundingBox(rotatedImageRectPath);

CGSize rotatedSize = boundingBox.size;

UIGraphicsBeginImageContext(rotatedSize);
UIGraphicsBeginImageContextWithOptions(rotatedSize, NO, 0.0f);

// Move the origin to the middle of the image so we will rotate and scale around the center.
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), rotatedSize.width/2, rotatedSize.height/2);

//Rotate the image context using tranform
CGContextConcatCTM(UIGraphicsGetCurrentContext(), selImageView.transform);
// Now, draw the rotated/scaled image into the context
CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0, -1.0);
CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(-aTransImage.size.width / 2, -aTransImage.size.height / 2, aTransImage.size.width, aTransImage.size.height), [aTransImage CGImage]);

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}

- (IBAction)saveToGalleryClicked:(id)sender
{
UIImage *aTransImage = selImageView.image;
UIImage *shareImage = [self getTheTransformedOriginalImage:aTransImage]
UIImageWriteToSavedPhotosAlbum(shareImage, nil, nil, nil);
}

我在附件中添加了旋转的UIImage。

最佳答案

为了没有白色背景(即不透明的图像),您需要使用其他函数来开始图像上下文:

 UIGraphicsBeginImageContextWithOptions(CGSize size, **BOOL opaque**, CGFloat scale) 

因此,请替换:
 UIGraphicsBeginImageContext(rotatedSize);

带有:
 UIGraphicsBeginImageContextWithOptions(rotatedSize, NO, [[UIScreen mainScreen]scale])

这样可以确保上下文透明地绘制。

关于ios - 如何从iOS中旋转,缩放和倒置的UIImageView中提取UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20529343/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com