同胞開發商和我正在創建是創建一個合成圖像的iPhone應用程序。這個想法是在一個6x6網格中有36個圖像。每張原始圖片都是400x300px。因此,處理後的最終圖像應該是2400x1800像素。的iOS:添加的6x6 400x300px圖像一個合成圖像
免責聲明:我不這樣做我自己特別節目。我的同事程序員不在SO上,出於各種原因,我不得不要求他。我個人是.Net開發人員,所以如果明顯的話,請原諒我的問題。
現在,顯然這是創建內存問題。到目前爲止,他的解決方案是嘗試將構圖繪製到UIImageView或CATiledLayer,並通過截取視圖來保存構圖。到目前爲止,所有的嘗試都由於內存問題而使應用程序崩潰,或者在構圖中產生黑色區域。
我的問題大概是簡單的。我們如何創建一個大的(屏幕外?)圖像,繪製36個部分圖像此結構,保存成分,然後把它放在可以由用戶來查看適當的組成部分?
編輯:
我的哥們找到了解決自己到底。我會在這裏一起接受的答案,以便將它張貼到有助於SO維基:)
UIGraphicsBeginImageContext(svPreview.contentSize);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(ctx, [[UIColor blackColor] CGColor]);
CGContextFillRect(ctx, CGRectMake(0, 0, svPreview.contentSize.width, svPreview.contentSize.height));
for(UIImageView *subview in [svPreview subviews]) {
[subview.image drawAtPoint:subview.frame.origin];
}
UIImage *rawImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(rawImage, self, nil, nil);
謝謝!我會把這個發給我的好友,看他有沒有任何意見。現在我會+1你:) – Pedery 2011-05-08 11:45:17
請注意我的編輯。這可能是一個很好的起點,但不是完整的解決方案。 – 2011-05-08 11:56:23
啊,也許這是他已經嘗試過的,並且失敗了。我知道他在這方面工作了好幾個小時,但沒有得到解決方案。因此,我在上面描述。他目前在紐約,所以我們不得不等待太陽出現在他的時區以獲得答案。 – Pedery 2011-05-08 12:41:25