gpt4 book ai didi

ios - 围绕一个点旋转 CIImage

转载 作者:行者123 更新时间:2023-11-29 01:57:00 25 4
gpt4 key购买 nike

我想从文件(文件系统上的 jpeg)旋转一个 UIImage 计算的弧度,但我想围绕图像中的一个点旋转它,并保持图像的原始大小(在图像数据不再存在的图像中有透明间隙,以及已移动到原始帧之外的裁剪图像数据)。我想然后存储并显示生成的 UIImage。我没有找到任何用于此任务的资源,任何帮助将不胜感激!

到目前为止我发现的最接近的东西(有一些细微的修改)如下:

-(UIImage*)rotateImage:(UIImage*)image aroundPoint:(CGPoint)点弧度:(float)弧度newSize:(CGRect)newSize{ CGRect imageRect = { 点, image.size };

UIGraphicsBeginImageContext(image.size);

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, imageRect.origin.x, imageRect.origin.y);
CGContextRotateCTM(context, radians);
CGContextTranslateCTM(context, -imageRect.origin.x, -imageRect.origin.y);
CGContextDrawImage(context, (CGRect){ CGPointZero, imageRect.size }, [image CGImage]);
UIImage *returnImg = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();
return returnImg;

不幸的是,这会错误地旋转图像(在我的测试中,旋转角度比预期多了 180 度左右)。

最佳答案

要旋转 UIImage 图像,比如说 90 度,您可以轻松地做到:

imageView.transform = CGAffineTransformMakeRotation(M_PI/2);

多次旋转它你可以使用:

UIView animateKeyframesWithDuration method 

并将其锚定到某个点,您可以使用:

[image.layer setAnchorPoint:CGPointMake(....)];

关于ios - 围绕一个点旋转 CIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30734893/

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