目前,我有以下内容
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)];
}我是不是走错了路?还是我在代码中犯了一个错误?
发布于 2011-05-26 02:07:13
该变换会翻转图像,但它翻转所围绕的轴不在图像的中心,而是在图像的左侧边缘。您还必须根据图像的宽度平移图像,以说明缩放过程中引起的移动。
发布于 2013-03-30 10:01:20
下面是一些代码,可能会帮助某些人解决==>问题
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;我使用它来水平翻转前置摄像头的帧,这样无论设备旋转多少,它们都会显示出来。这个东西确实有点棘手。要帮助弄清楚发生了什么,可以做的一件事是沿着两个轴中的任何一个轴缩小,并查看结果是什么。
https://stackoverflow.com/questions/6128640
复制相似问题