2012-09-10 57 views
-1

在我的應用程序中,我應用了不同類型的轉換,如向左旋轉,向右旋轉,翻轉垂直,水平翻轉到UIImageview。應用這些操作後,UIImageview的位置發生變化。我希望將這個更改後的圖像分配給其他視圖,而不是原始圖像。當我將imageview.image分配給另一個視圖時,它將分配原始圖像。我該如何糾正這一點?如何將轉換後的UIImageview的圖像分配給其他UIImageview?

如建議通過David.I正在申請以下代碼爲左旋轉

//rotation left; 
     int x1=ivPhoto.frame.origin.x; 
     int y1=ivPhoto.frame.origin.y; 

     UIGraphicsBeginImageContext(ivPhoto.image.size); 


     CGAffineTransform transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(degrees2));   

     CGContextConcatCTM(UIGraphicsGetCurrentContext(), transform); 
     [ivPhoto.image drawInRect:CGRectMake(x1,y1,ivPhoto.frame.size.width, ivPhoto.frame.size.height)]; 

     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 

     ivPhoto.image=newImage; 

但我沒有得到旋轉的形象。形象是在原來的位置

回答

0

後,你的改造完成拍攝像新形象這樣的:

CGSize fittingSize = yourImgView.frame.size; 
UIGraphicsBeginImageContext(fittingSize); 
[yourImgView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImahe *capImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

現在分配這些capImage到另一個的UIImageView與變換的圖像

0

您應該在上下文中進行更改,並在完成後將其保存到UIImage。然後設置在ImageView的是圖像:

UIGraphicsBeginImageContext(sizeOfImage); 


    CGAffineTransform transform = CGAffineTransformIdentity; 

等等等等

CGContextConcatCTM(UIGraphicsGetCurrentContext(), transform); 
[imageView.image drawInRect:CGRectMake(position.x, position.y, size.width, size.height)]; 
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
相關問題