Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以自定义像素尺寸保存UIImage_Ios_Objective C - Fatal编程技术网

Ios 以自定义像素尺寸保存UIImage

Ios 以自定义像素尺寸保存UIImage,ios,objective-c,Ios,Objective C,我使用下面的实现将ui视图作为图像保存到设备的相册中。它工作正常,但保存的图像会适应设备的屏幕分辨率。例如,如果我在iPhone5上运行它,保存的图像将是640x640 px。我的目标是在每台设备上保存自定义大小的图像,如1800 x 1800 px或类似的图像。因此,如果有人能给我一个例子或任何指导,帮助我找到正确的解决方案,我将不胜感激。欢迎任何其他提示,我的目标是定制像素大小的图像,如果我必须使用不同的实现,这并不重要 - (IBAction)saveImg:(id)sender {

我使用下面的实现将
ui视图
作为图像保存到设备的相册中。它工作正常,但保存的图像会适应设备的屏幕分辨率。例如,如果我在iPhone5上运行它,保存的图像将是
640x640 px
。我的目标是在每台设备上保存自定义大小的图像,如
1800 x 1800 px
或类似的图像。因此,如果有人能给我一个例子或任何指导,帮助我找到正确的解决方案,我将不胜感激。欢迎任何其他提示,我的目标是定制像素大小的图像,如果我必须使用不同的实现,这并不重要

- (IBAction)saveImg:(id)sender {

    UIImage *imageToSave = [[UIImage alloc] init];
    // self.fullVw holds the image, that I want to save
    imageToSave = [self.fullVw pb_takeSnapshot];

    NSData *pngData = UIImagePNGRepresentation(imageToSave);

    UIImage *imageToSave2 = [[UIImage alloc] init];
    imageToSave2 = [UIImage imageWithData:pngData];

    UIImageWriteToSavedPhotosAlbum(imageToSave2,nil, nil, nil);
}

// This method is in a UIView category
- (UIImage *)pb_takeSnapshot {

    UIGraphicsBeginImageContextWithOptions(self.bounds.size, self.opaque, 0.0);
    [self drawViewHierarchyInRect:self.bounds afterScreenUpdates:YES];

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

添加了
pb_takeSnapshot
@dan的实现,我已经添加了它。它位于
UIView
类别中。@cimp23不拉伸图像是不可能的,因为当您进行屏幕截图时,您需要处理设备屏幕分辨率,并且您不能在屏幕为640x480的iPhone设备上使用1800x1800。@JohnTracid是否有其他方法进行此操作?很多应用程序都在这样做,你知道它们是如何实现的吗?添加
pb\u takeSnapshot
@dan我已经添加了它。它位于
UIView
类别中。@cimp23不拉伸图像是不可能的,因为当您进行屏幕截图时,您需要处理设备屏幕分辨率,并且您不能在屏幕为640x480的iPhone设备上使用1800x1800。@JohnTracid是否有其他方法进行此操作?很多应用程序都在这样做,你知道他们是如何做到的吗?