首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法翻转CGImage

无法翻转CGImage
EN

Stack Overflow用户
提问于 2012-03-20 16:59:02
回答 1查看 932关注 0票数 0

我需要做的是将CGImageRef从左到右翻转,这是CALayer的conntents属性。我一直在谷歌上彻底搜索,想找到一种直接翻转它的方法,但徒劳无功。所以我决定做的是翻转一个UIImage,然后将它的CGImage属性设置为CALayer的内容。

所以我所做的是:

代码语言:javascript
复制
 UIImage *src = [UIImage imageNamed:@"res/images/lizard.png"];
src = [UIImage imageWithCGImage:src.CGImage scale:1.0 orientation:UIImageOrientationRightMirrored];
UIImageView *test = [[UIImageView alloc] initWithImage:src];
[test setFrame:CGRectMake(20, 20, 50, 50)];
[self.view addSubview:test];

[lizard.layer setContents:((id)test.image.CGImage)];

但这是徒劳的,这一层仍然没有翻转。我接下来做的是:

代码语言:javascript
复制
UIImage *src = [UIImage imageNamed:@"res/images/lizard.png"];
UIImageView *test = [[UIImageView alloc] initWithImage:src];
[test setFrame:CGRectMake(20, 20, 50, 50)];
[self.view addSubview:test];
test.transform   = CGAffineTransformIdentity;
test.transform   = CGAffineTransformMakeScale(-1.0, 1.0);

[lizard.layer setContents:((id)test.image.CGImage)];

但不幸的是,它仍然不能满足我的需求。名为test的UIImageView按预期显示-它已翻转,但lizard.layer的内容未翻转。这怎么会发生呢?你能帮帮我吗?

1)有没有正常的方法来翻转CALayer的内容?

2)如果没有,那么我如何翻转CGImageRef来正确设置内容?

EN

回答 1

Stack Overflow用户

发布于 2012-03-20 17:04:23

您已经应用了transform来测试图像视图,而不是它的图像。因此,当你将图像分配给其他未翻转的图层时,你不能期望翻转的输出。

将变换应用于lizard.layer。你会明白的。

代码语言:javascript
复制
[lizard.layer  setAffineTransform:CGAffineTransformIdentity];
[lizard.layer setAffineTransform: CGAffineTransformMakeScale(-1.0, 1.0)];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9783822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档