镜像CIImage / NSImage

问题描述

| 目前我有以下
 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,但是我的最终图像总是完全空白。写入文件时,尺寸是正确的,但似乎是空的。
- (CIImage *)flipImage:(CIImage *)image
{
    return [image imageByApplyingTransform:CGAffineTransformMakeScale(-1,1)];
}
我是否以错误的方式处理此问题?还是我的代码有误?     

解决方法

该变换将其翻转,但是其围绕的轴不在图像中心,而是在左边缘。您还必须按其宽度平移图像,以解决缩放过程中引起的移动。     ,这是一些可以帮助某人的代码==>
    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:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...