gpt4 book ai didi

ios - 在 UIGraphicsBeginImageContext 中绘制时 UIImage 方向发生变化

转载 作者:行者123 更新时间:2023-11-29 02:52:53 26 4
gpt4 key购买 nike

我想在 UIImage 上画一些线。我能够将线条绘制到上下文中,最后我在使用以下代码从上下文中获取图像之前绘制背景图像:

UIGraphicsBeginImageContext(self.bounds.size);
CGRect newFrame = self.frame;
newFrame.origin.y = 0;
[self.backgroundImage drawInRect:newFrame];

[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *saveImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

问题是:self.backgroundImage.imageOrientation 是 3 但 saveImage.imageOrientation 是 0。我怎样才能为 saveImage 获得相同的 imageOrientation?

最佳答案

UIImage->drawInRect 将遵循图像方向,因此调用之后,结果始终是“直立的”,因此您的 saveImage 实际上应该具有 imageOrientationUp。

如果您想更改方向元数据而不影响图像,可以使用如下内容:

// Recreate UIImage with new orientation

- (UIImage *) imageWithOrientation:(UIImageOrientation)value
{
if (self.imageOrientation == value)
return self;

if (self.CGImage != nil)
return [UIImage imageWithCGImage:self.CGImage
scale:self.scale orientation:value];

if (self.CIImage != nil)
return [UIImage imageWithCIImage:self.CIImage
scale:self.scale orientation:value];

return nil;
}

关于ios - 在 UIGraphicsBeginImageContext 中绘制时 UIImage 方向发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283017/

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