Zhe*_*hen 21 objective-c aspect-ratio uiimagepickercontroller ios
我正在使用UIImagePickerController为我的应用程序选择图像.然而,我在维持所选图像的纵横比方面面临一些挑战
例如,
我手机上的原始图像如下(非方形图像):
通过"移动和缩放"页面在iphone上选择图像以裁剪图像后,结果如下:(此处仍保持宽高比)
我的应用程序将在带有方框(200 x 200)的UIImageView中显示所选图像.将所选图像设置为UIImageView(UIImageView.image = selectedImage)后,图像的宽高比不会保持,而是跟随UIImageView的框架:(图像看起来在我的UIImageView中现在倾斜):
在这种情况下,有没有办法保持图像的纵横比?
编辑:更新预期结果
经过一番思考,我意识到解决我的问题的最好方法是确保对于这样的图像(非正方形),我需要将它们"转换"成方形图像,即填充图像顶部和底部的空白区域以制作广场例如
预期图片:(添加了顶部和底部边框)
编辑:使用示例代码更新
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo
{
self.imageView.contentMode = UIViewContentModeScaleAspectFill;
self.imageView.image = image;
[[picker parentViewController] dismissModalViewControllerAnimated:YES];
//Compress image
UIImage *image = [self scaleImage:img toSize:CGSizeMake(612.0,612.0)];
self.imageData = UIImageJPEGRepresentation(image, 0.75);
}
Run Code Online (Sandbox Code Playgroud)
通过添加代码"self.imageView.contentMode = UIViewContentModeScaleAspectFill;",我能够在uiimageview中获取方形图像
但似乎原始图像仍然不是方形图像,因此当我执行"UIImage*image = [self scaleImage:img toSize:CGSizeMake(612.0,612.0)];"时,仍会出现偏斜问题.我的假设是否正确?无论如何要缓解这个问题,因为我仍然需要在应用程序的其他地方显示"压缩"图像.
edo*_*o42 37
这样做myImageView.contentMode = UIViewContentModeScaleAspectFit;
是不够的,因为它以Zhen想要的方式改变了图像的纵横比,但它不会改变源图像,这是Zhen所需要的.唯一的方法是使用UIGraphicsImageContext,如下所述:
使用宽高比调整UIImage的大小?
Eim*_*tas 23
你应该调整你UIImageView
的内容模式:
myImageView.contentMode = UIViewContentModeScaleAspectFit;
Run Code Online (Sandbox Code Playgroud)
只是为了踢 - 检查UIViewContentMode
常量的文档.
您可以contentMode
在UIImageView
实例上设置属性,例如:
myImageView.contentMode = UIViewContentModeScaleAspectFit;
Run Code Online (Sandbox Code Playgroud)
这会强制它在缩放时保留图像的宽高比.此处还可以设置许多其他值来生成其他行为,如参考文档中所述.
归档时间: |
|
查看次数: |
58557 次 |
最近记录: |