0

我需要创建一个图像日历(它们的大小为 640 x 960 或 960 x 640)。现在我尝试的一种方法是创建一个视图,向其中添加图像视图,呈现图像,使用子视图在其上“绘制”,然后保存以查看到文件。

现在这按计划工作,但在模拟器中进行测试,保存图像的分辨率为 306 x 462(我正在保存的视图大小)。现在我刚刚失去了一半原来的决心......

有没有办法解决这个问题?

保存视图的代码:

UIGraphicsBeginImageContext(self.backgroundImageView.bounds.size);
[self.backgroundImageView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString * basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;

NSString *fullPath = [NSString stringWithFormat:@"%@/Calendar.png",basePath];
NSData * binaryImageData = UIImagePNGRepresentation(image);

[binaryImageData writeToFile:fullPath atomically:YES];
4

2 回答 2

0

您没有考虑设备屏幕比例,应该这样做:UIGraphicsBeginImageContextWithOptions(self.backgroundImageView.bounds.size, YES, [UIScreen mainScreen].scale);.

于 2013-08-12T09:11:34.967 回答
-2

如果有人有类似的问题,我想出了2个解决方案:

1)在保存之前放大所有内容(您必须使用 AutoresizingMasks)。

2)将所有内容放入scrollView并以大尺寸显示,以便用户在想要查看所有内容时滚动。

于 2013-08-12T09:01:23.460 回答