Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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
Iphone UIImage来自图像选择器模糊_Iphone_Ios_Uiimage - Fatal编程技术网

Iphone UIImage来自图像选择器模糊

Iphone UIImage来自图像选择器模糊,iphone,ios,uiimage,Iphone,Ios,Uiimage,我知道这个问题已经被问了好几次了,但是我不明白为什么我的图像仍然模糊 我所做的: 从UIImagePicker导入图像 根据此处的代码调整图像大小: 使用initWithImage初始化UIImage以保存UIImage。将其添加为子视图,使框架CGRectIntegral(框架)确保所有框架的坐标都是整数 尽管如此,屏幕上显示的图像仍然有点模糊。知道我做错了什么吗 代码: 您可以尝试在UIImageView图层上设置光栅化 原因是,您正在拾取原始图像,根据设备的不同,原始图像可以是1000

我知道这个问题已经被问了好几次了,但是我不明白为什么我的图像仍然模糊

我所做的:

  • 从UIImagePicker导入图像
  • 根据此处的代码调整图像大小:
  • 使用initWithImage初始化UIImage以保存UIImage。将其添加为子视图,使框架CGRectIntegral(框架)确保所有框架的坐标都是整数
尽管如此,屏幕上显示的图像仍然有点模糊。知道我做错了什么吗

代码:


您可以尝试在UIImageView图层上设置光栅化

原因是,您正在拾取原始图像,根据设备的不同,原始图像可以是1000像素。然后使用aspect fit将其向下挤压。没有光栅化来平滑图像


那是我的猜测。如果没有设备信息,您的问题很难回答。

设法解决了-我添加了两行:

UIImage *gotImage = [info objectForKey:UIImagePickerControllerOriginalImage];

float scale = (self.view.frame.size.width * [[UIScreen mainScreen] scale] )/imageToResize.size.width; //Changed line
imageToResize = [imageToResize resizedImage:CGSizeMake(scale * imageToResize.size.width, scale * imageToResize.size.height) interpolationQuality:kCGInterpolationHigh];

UIImage *testImage = [UIImage imageWithCGImage:blurredImage.CGImage scale:[[UIScreen mainScreen] scale] orientation:blurredImage.imageOrientation]; //Changed line
UIImageView *background = [[UIImageView alloc] initWithImage:testImage]; 

background.contentMode = UIViewContentModeScaleAspectFit;
background.frame = CGRectIntegral(background.frame);
[self.view addSubview:background];

你在视网膜设备上看到这个问题了吗?除了Jeff的问题,
scale=(self.view.frame.size.width*self.view.contentScaleFactor)/(imageToResize.size.width)
解决了这个问题吗?是的,我在视网膜设备上看到了这一点-尝试将contentScaleFactor添加到量表中,但不幸的是似乎没有产生任何影响。感谢您的建议-尝试添加此功能,但似乎没有产生任何影响。在iPhone5上测试。
UIImage *gotImage = [info objectForKey:UIImagePickerControllerOriginalImage];

float scale = (self.view.frame.size.width * [[UIScreen mainScreen] scale] )/imageToResize.size.width; //Changed line
imageToResize = [imageToResize resizedImage:CGSizeMake(scale * imageToResize.size.width, scale * imageToResize.size.height) interpolationQuality:kCGInterpolationHigh];

UIImage *testImage = [UIImage imageWithCGImage:blurredImage.CGImage scale:[[UIScreen mainScreen] scale] orientation:blurredImage.imageOrientation]; //Changed line
UIImageView *background = [[UIImageView alloc] initWithImage:testImage]; 

background.contentMode = UIViewContentModeScaleAspectFit;
background.frame = CGRectIntegral(background.frame);
[self.view addSubview:background];