2009-11-30 99 views
0

我想保存一個旋轉和縮放的UIImageView作爲UIImage的位置和用戶編輯的縮放比例。但我只能設法保存原始圖像,因爲它是在編輯之前。如何以UIImageView中的縮放和旋轉相同的方式保存圖像?我讀過,我需要使用UIGraphicsGetCurrentContext(),但我得到相同的原始圖像保存(但翻轉),而不是旋轉的!建議和提示將非常有幫助。 預先感謝您。 鋁UIImageView:旋轉和縮放。我如何保存結果?

(UIImage *)getImage 
{ 
CGSize size = CGSizeMake(250, 250); 
UIGraphicsBeginImageContext(size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGMutablePathRef path = CGPathCreateMutable(); 

// Add circle to path 
CGPathAddEllipseInRect(path, NULL, CGRectMake(0, 0, 250, 250)); 
CGContextAddPath(context, path); 

// ****************** touchImageView is my UIImageView ****************// 
CGContextDrawImage(context, CGRectMake(0, 0, 250, 250), [touchImageView image].CGImage); 

UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 

// Clip to the circle and draw the logo 
CGContextClip(context); 
UIGraphicsEndImageContext(); 

return scaledImage; 

}

回答

1

我沒有在你發佈的代碼中看到什麼會旋轉圖像。你忘了補充一點嗎?

它看起來像你在正確的軌道上。現在,您應該使用變換例程CGContextScaleCTMCGContextRotateCTM來適當修改您的變換矩陣,然後(爲了避免翻轉),請使用-[UIImage drawAtPoint:]繪製UIImage而不是使用CGContextDrawImage

+0

旋轉發生在touchImageView中,然後我想將rorated圖像保存爲一個圓圈。對不起,如果我不清楚。 – Alan 2009-12-02 21:37:27

+0

你將無法做到這一點。旋轉UIImageView時,UIImage本身不會旋轉。如果你想保存它,你必須在繪製它之前自己旋轉它。請參閱上面的答案以瞭解如何執行此操作。 – 2009-12-03 02:52:59

1

視圖基於變換被施加的上下文不上下文本身的輸出。我相信你必須使用link text核心圖形的特定功能來縮放和旋轉圖像上下文本身。

(我可能是錯的。我怎麼也想不起正是我在past.Take這樣做此用一粒鹽。)