首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >镜像CIImage/NSImage

镜像CIImage/NSImage
EN

Stack Overflow用户
提问于 2011-05-26 01:49:35
回答 2查看 2K关注 0票数 0

目前,我有以下内容

代码语言:javascript
复制
 CIImage *img = [CIImage imageWithCVImageBuffer: imageBuffer];

 NSCIImageRep *imageRep = [NSCIImageRep imageRepWithCIImage:img];
 NSImage *image = [[[NSImage alloc] initWithSize: [imageRep size]] autorelease];
 [image addRepresentation:imageRep];

这很好用,我可以使用NSImage,当写入文件时,图像就是我想要的样子。

但是,我使用QTKit从用户iSight中拉出此图像,因此我需要能够在y轴上翻转此图像。

我的第一个想法是使用这样的东西来转换CIImage,但是我的最终图像总是完全空白。当写入文件时,尺寸是正确的,但它似乎是空的。

代码语言:javascript
复制
- (CIImage *)flipImage:(CIImage *)image
{
    return [image imageByApplyingTransform:CGAffineTransformMakeScale(-1, 1)];
}

我是不是走错了路?还是我在代码中犯了一个错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-26 02:07:13

该变换会翻转图像,但它翻转所围绕的轴不在图像的中心,而是在图像的左侧边缘。您还必须根据图像的宽度平移图像,以说明缩放过程中引起的移动。

票数 3
EN

Stack Overflow用户

发布于 2013-03-30 10:01:20

下面是一些代码,可能会帮助某些人解决==>问题

代码语言:javascript
复制
    CGAffineTransform rotTrans = CGAffineTransformMakeRotation(M_PI_2);
    CGAffineTransform transTrans1 = CGAffineTransformTranslate(rotTrans, 0.0f, 320.0f);
    CGAffineTransform scaleTrans = CGAffineTransformScale(transTrans1, 1.0, -1.0);
    CGAffineTransform transTrans2 = CGAffineTransformTranslate(scaleTrans, -0.0f, -320.0f);

    self.view.transform = transTrans2;

我使用它来水平翻转前置摄像头的帧,这样无论设备旋转多少,它们都会显示出来。这个东西确实有点棘手。要帮助弄清楚发生了什么,可以做的一件事是沿着两个轴中的任何一个轴缩小,并查看结果是什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6128640

复制
相关文章

相似问题

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