在我正在开发的应用程序中,我有一个部分,我允许用户使用UIImagePicker加载图像(从他们的照片库或拍摄新照片),这样做通常会给出一个很大的图像分辨率.2500x2000(或类似的东西)
现在我将该图像加载到UIImageView中(简单地说就是400x320)。 然后我允许用户选择其他图像/对象覆盖在原始图像的顶部并移动它们/调整大小,然后才能将新图片保存到他们的照片库或通过电子邮件发送。
我只是想知道保存图像的最佳方法是什么,以便图像res仍然像原始图像一样高......现在我只是截取屏幕截图但是这留下了一个小的400x320图片。
谢谢!
所以我得到了我想要的东西,不知道我是否以正确的方式做到了。
这基本上就是我所做的。
//NEWWIDTH and NEWHEIGHT are double the width and height of the UIImageView that i can edit the pictures in
CGSize newSize = CGSizeMake(NEWWIDTH, NEWHEIGHT);
UIGraphicsBeginImageContext(newSize);
//i'm resizing myOriginalImage before to how i want
[myOriginalImage drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *image;
//Here i go through all the other pictures i added on top and go the same drawInRect method for each of them...multiplying each value x,y,height,width by 2
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
答案 0 :(得分:0)
目前尚不清楚你是如何操纵图像的。在我的应用程序中,我在一个简单的UIView中使用Core Graphics进行操作,并通过使用不同的位图上下文获得类似的效果。在我看来,我这样做:
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
[_model render:rect context:context];
}
当我想渲染完整大小的位图以进行保存时,我使用CGBitmapContext运行相同的渲染代码。
这可能不是你的选择,但它对我有用。
祝你好运!