gpt4 book ai didi

ios - 使用 CATransform3D 旋转 UIImage 并仅获得裁剪后的新 UIImage

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

我正在尝试使用 CATransform3DRotate 方法围绕其 X 轴旋转 UIImage,并获得旋转后的 UIImage,但旋转后,某些部分将被裁剪,而某些部分将保持黑色(透明)。

我使用 Brad Larson 的 GPUImage 框架来执行此操作。

我的代码是

filter = [[GPUImageTransformFilter alloc] init];
CATransform3D perspectiveTransform = CATransform3DIdentity;
perspectiveTransform.m34 = 0.4;
perspectiveTransform.m33 = 0.4;
perspectiveTransform = CATransform3DRotate(perspectiveTransform, 0.75, 1.0, 0.0, 0.0);


[(GPUImageTransformFilter *)filter setTransform3D:perspectiveTransform];
GPUImagePicture *sourcePicture = [[GPUImagePicture alloc] initWithImage:_myImage smoothlyScaleOutput:YES];
[sourcePicture addTarget:filter];
[filter useNextFrameForImageCapture];
[sourcePicture processImage];

_myImage = [filter imageFromCurrentFramebuffer];

有没有办法让新的 UIImage 适应新的尺寸而不缩小?因为缩小可能会降低图片的质量。

顺便说一句,我尝试在 CALayer 上执行此操作,但尽管 CALayer 看起来旋转了,但实际的 UIImage 仍然相同。

提前致谢!

最佳答案

如果您使用UIImageView 来显示您的图像,那么您可以使用UIViewtransform 属性来实现您所需要的;请看this answer例如。或者,如果您需要 UIImage 自行旋转(而不是 ImageView ),请查看 this answer .

关于ios - 使用 CATransform3D 旋转 UIImage 并仅获得裁剪后的新 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24216690/

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