2010-12-13 66 views
1

我用下面的代碼來旋轉的UIImage旋轉的UIImage並沒有顯示

double angle = -90; 
NSData *imageData = [NSData dataWithContentsOfFile:sss]; 
UIImage *image =[UIImage imageWithData:imageData]; 
CGSize s = {image.size.width, image.size.height}; 
UIGraphicsBeginImageContext(s); 
CGContextRef ctx = UIGraphicsGetCurrentContext(); 
CGContextTranslateCTM(ctx, 0,image.size.height); 
CGContextScaleCTM(ctx, 1.0, -1.0); 
CGContextRotateCTM(ctx, 2*M_PI*angle/360); 
CGContextDrawImage(ctx,CGRectMake(0,0,image.size.width, image.size.height),image.CGImage); 
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
[myUIImageView setImage:newImage]; 

,但沒有顯示在myUIImageView。

如果有什麼問題?

歡迎任何評論

感謝

InterDev中

回答

2

如果你將要旋轉圖像90度,當你創建圖像內容,你應該換的寬度和高度:

CGSize s = {image.size.height, image.size.width}; 

這樣,就有足夠的空間來繪製完全變換的圖像。嘗試將圖像繪製成超出圖形上下文邊界的矩形將導致不繪製任何內容。

P.S.我建議使用CGBitmapContext而不是UIGraphicsBeginImageContext(),因爲前者是線程安全的,這意味着如果您願意,您可以在後臺線程上對圖像進行操作。

+0

是的,我想繪製一個旋轉的圖像矩形,如何顯示所有旋轉的圖像? – arachide 2010-12-13 08:30:13

+0

我得到了解決方案!謝謝 – arachide 2010-12-13 09:35:01