我基本上想要從一堆源圖像自動創建平鋪圖像,然後將其保存到用戶的相冊中。我沒有任何成功將一堆小UIImage畫成一個大UIImage。什麼是實現這一目標的最佳方式?目前我使用的是UIGraphicsBeginImageContext()和[UIImage drawAtPoint]等。我所有的結果都是512x512的黑色方塊。我應該怎麼做?我期待着CGLayer,等等,似乎有很多選擇,但沒有一個特別容易。計算要保存到相冊的UIImage
讓我居然把我的代碼:
CGSize size = CGSizeMake(512, 512);
UIGraphicsBeginImageContext(size);
UIGraphicsPushContext(UIGraphicsGetCurrentContext());
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
UIImage *image = [self getImageAt:i:j];
[image drawAtPoint:CGPointMake(i*128,j*128)];
}
}
UIGraphicsPopContext();
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(result, nil, nil, nil);
我要指出,其實上面是不什麼在我的代碼到底會發生。真正發生的是,我在調用UIGraphicsPushContext之前調用每一行,然後在一個動畫計時器中緩慢增加繪圖並繪製到上下文中。然後在完成之後,我會從UIGraphicsPopContext開始調用所有內容。
是的,我現在把代碼放在裏面,這樣你就可以看到我做了什麼。 – Eli
好吧,嘗試擺脫行:UIGraphicsPushContext(UIGraphicsGetCurrentContext()); 和UIGraphicsPopContext(); –
不,我有一個OpenGL視圖,它是當前的圖形上下文,並且沒有任何其他UIView存在。我正在屏幕截圖OpenGL數據並試圖將其平鋪到一個完全不同的UIImage。這樣做的目的基本上是從一個精靈表中的多個角度獲取3D模型。 – Eli