15
我有一個描述圖像名稱,它的大小和它的X/Y位置的對象的集合。該集合按「圖層」排序,因此我可以用某種畫家的算法合成圖像。如何將幾個NSImages組合成一個大圖像?
從這個,我能確定需要保持所有圖像的矩形,所以現在我想要做的是:
- 建立某種形式的緩存來保存結果(NS相當於什麼iPhoneOS調用UIGraphicsContext。)
- 將所有圖像繪製到緩衝區中。
- 從緩衝區的合成結果中剔除新的NSImage。
在的iPhoneOS,這是代碼,我想要做什麼:
UIGraphicsBeginImageContext (woSize);
CGContextRef ctx = UIGraphicsGetCurrentContext();
[[UIColor clearColor] set];
CGContextFillRect(ctx, NSMakeRect(0, 0, woSize.width, woSize.height));
// draw my various images, here.
// i.e. Various repetitions of [myImage drawAtPoint:somePoint];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
我正在尋找的是如何做到這一點的桌面可可/ NS。
謝謝!
文檔說在Snow-Leopard中棄用。 「重要提示:如果您正在編寫新代碼或更新舊代碼,則應避免使用此方法,而應使用drawAtPoint:fromRect:operation:fraction:或drawInRect:fromRect:operation:fraction:method來繪製儘管該方法本身並未被棄用,但它提供的行爲並不推薦用於一般用途。「 但我會嘗試drawAtPoint,如果它有效,給你正確的答案複選標記。 (你可能想編輯你的答案。) 謝謝! – Olie 2010-03-04 00:45:56
呼叫良好。編輯。我認爲,原因是繪製檢查源矩形和複合不。這很好,只要你確定你傳遞了一個明智的矩形(它也更快一些),但使用draw會更安全。 – andyvn22 2010-03-04 06:38:14
是的,lockFocus是我失蹤的東西(這樣一個直觀的名字,我無法想象我怎麼沒有想到檢查文檔!) 謝謝! – Olie 2010-03-05 15:25:21