我基本上想从一堆源图像中自动创建一个平铺图像,然后将其保存到用户的相册中。我没有成功将一堆小的 UIImage 绘制到一个大的 UIImage 中。实现这一目标的最佳方法是什么?目前我正在使用 UIGraphicsBeginImageContext() 和 [UIImage drawAtPoint] 等。我最终得到的只是一个 512x512 的黑色方块。我应该怎么做?我正在寻找 CGLayer 等。似乎有很多选择,但没有一个特别容易工作。
让我把我的代码放进去:
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 之前调用每一行,包括 UIGraphicsPushContext,然后在动画计时器中,我慢慢地增加绘图并绘制到上下文。然后在这一切完成后,我从 UIGraphicsPopContext 开始调用所有内容。