2010-10-28 70 views
3

我想在我的iPhone应用程序中的功能,它将图像转换为镜像的方式。镜像+ iphone

就像是有一个人的左手向上的图像然后转换后的图像必须有右手的同一个人。

任何代码或链接将非常感激

在此先感谢您的任何帮助。

+1

在westsiders回答,如果不是MyView的,如果我们从文件目录获取它的时间变换MYIMAGE那么我们将得到正是我们想要的...(注:原始图片不会被受影响这只有我们可以看到在整个应用程序镜像的图像)快乐编码... – 2010-11-16 12:50:27

回答

3

你可以试试这个

myImageView.transform = CGAffineTransformMake(-1,0,0,1,0,0); 

对不起,我不能更多的帮助。很久以前,我用这个水平翻转了一个UIView,所以我对某些细节有点生疏。

+0

你好westsider,谢谢你的答复但我不想改变我的观点,但我想转换保存在文档目录中的图像。任何想法? – 2010-10-29 07:13:56

+0

你可以看看。这不是我所做的 - 但“答案”和后续评论似乎很有帮助。 – westsider 2010-10-29 15:46:44

+0

我已经更新了答案,它的工作就像一个魅力。谢谢 – 2012-10-29 09:00:54

0

// convert CIImage to unsigned char* 
NSBitmapImageRep * bitRep = [[NSBitmapImageRep alloc] initWithCIImage:sourceImage]; 
unsigned char * pixels = (unsigned char *)[bitRep bitmapData]; 

// find mirrored pixel, for 1D pixels array 
// for 2D array it will be something like: 
// pixels2D[x,y] = pixels2D[Image.width-1-x,y] 

// convert modified unsigned char* back to CIImage 
CGColorSpaceRef colorSpaceToUse = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); 
NSData *_pixelsData = [NSData dataWithBytesNoCopy:pixels length:(sizeof(unsigned char)*4*Image.Width*Image.Height) freeWhenDone:YES ]; 
CIImage *_dataCIImage = [[[CIImage alloc] initWithBitmapData:_pixelsData bytesPerRow:(Image.Width*4*sizeof(unsigned char)) size:CGSizeMake(Image.Width,Image.Height) format:kCIFormatARGB8 colorSpace:colorSpaceToUse] autorelease]; 
+0

添加ObjC示例代码,我只是在1D像素阵列中跳过镜像像素查找。我认为你很聪明,可以自己管理:) – 2010-10-29 10:38:05

+0

你应该为这个示例添加AppKit框架来工作。但我不知道iPhone中可用的框架。 – 2010-11-02 07:14:13

1
myView.transform = CGAffineTransformMake(-1,0,0,-1,0,0);