2011-07-07 70 views
3

我必須對應該在平面上顯示形狀的繪圖工具進行編程。這些形狀可以是任意形狀,例如橢圓形或立方體,或者可以在平面上繪製的圖片。使用Quartz進行形狀轉換(iOS)

我需要做的是,使用圍繞這些形狀定位的標記點,能夠通過移動標記來轉換它們。例如,假設我有四個標記位於頂部,底部,左側和右側,我應該能夠通過移動左側和右側標記來水平拉伸形狀。

我不能使用形狀的幾何屬性(例如改變橢圓的半徑),因爲我必須能夠在任意形狀(如圖片)上做到這一點。

我沒有太多的圖像處理算法的經驗,任何人都可以給我一些啓動的提示嗎?最終做到最好的做法,甚至是一個很好的算法來做到這一點?

我正在開發iOS平臺。

回答

0

這裏是你如何繪製到一個UIImage

UIGraphicsBeginImageContext(CGSizeMake(width, height)); 
// do your drawing operations 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

這裏是你如何可以縮放該圖像

UIGraphicsBeginImageContext(CGSizeMake(scaledWidth, scaledHeight)); 
[image drawInRect:CGRectMake(0,0, scaledWidth, scaledHeight)]; 
UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

你不必做的兩個步驟 - 你可以只畫每個項目縮放。這對於非圖像繪製會更好。

如果你需要一個CGContextRef畫,你可以使用這個

CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];