2012-09-28 36 views
0

我已經下一個被稱爲每次用戶代碼觸摸屏幕,並修改UIBezierPathCGImage旋轉時,我畫它CGContext上

CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextDrawImage(context, self.bounds, image); 

    [lineColor setStroke]; 
    [currentPath stroke]; 
    if(panEnded) 
    { 
    if(image!=nil) 
    { 
     CFRelease(image); 
    } 
    image=nil; 
    image=CGBitmapContextCreateImage(context); 
    panEnded=false; 
    } 

所以每次我創造新的圖像(從「如果」分支)它旋轉180度。我究竟做錯了什麼?

回答

-1

的我所解決的問題在每次拍攝時在不同的上下文中旋轉圖像:

- (void)drawRect:(CGRect)rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextDrawImage(context, CGRectMake(0, 0, CGImageGetWidth(image),CGImageGetHeight(image)), image); 
    [lineColor setStroke]; 
    [currentPath stroke]; 
    if(panEnded) 
    { 
    if(image!=nil) 
    { 
     CFRelease(image); 
    } 
    image=nil; 
    image=CGBitmapContextCreateImage(context); 
    [self rotateCGImage]; 
    panEnded=false; 
    currentPath=nil; 
    } 
} 

-(void)rotateCGImage 
{ 
    UIGraphicsBeginImageContext(CGSizeMake(CGImageGetWidth(image), CGImageGetHeight(image))); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextDrawImage(context, CGRectMake(0 , 0, CGImageGetWidth(image), CGImageGetHeight(image)), image); 


    CGContextRotateCTM (context, radians(90)); 
    if(image!=nil) 
    { 
    CFRelease(image); 
    } 
    image=nil; 
    image=CGBitmapContextCreateImage(context); 

} 
0

它的座標和方向的不同,得出的圖像最好的辦法是使用上的UIImage法負責與所有的東西打交道

UIImage *imageUI=[UIImage imageWithCGImage:image]; 
[imageUI drawInRect:rect]; 

希望這有助於