2010-10-28 106 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);