gpt4 book ai didi

ios - 将它用于 UIImageView 时 UIImage 失真

转载 作者:行者123 更新时间:2023-11-29 03:14:24 25 4
gpt4 key购买 nike

我拍了一张照片,然后用这张照片初始化了一个 UIImageView 对象。唯一的问题是,当我拍照时,照片是使用完整的 iPhone 屏幕(纵向)拍摄的。

使用这张照片初始化的 UIImageView 仅设置为占据 iPhone 屏幕的顶部 50%。所以你可以想象图像看起来是扭曲的。

通过使用以下代码,我可以使其看起来更好:

UIImageView *halfView = [[UIImageView alloc]initWithImage:image];

[self.view addSubview:halfView];

halfView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.frame.size.height/2);

halfView.contentMode = UIViewContentModeScaleAspectFill;

唯一的问题是,最终的 UIImageView 称为“halfView”仍然略有变形。

我觉得这是不可能修复的,因为原始照片是用完整的 iphone 屏幕拍摄的,永远无法完美地缩放以适应只占据 iphone 屏幕前 50% 的 UIImageView。

我基本上是在尝试复制 frontback 应用程序。这是您在他们的应用程序中拍摄原始图像时的样子:

enter image description here

这就是您拍照时我的应用程序屏幕的样子:

enter image description here

然后在您拍完照片后,我的应用程序的屏幕立即变为正面屏幕并拍摄您刚刚拍摄的照片并将其放在上半部分并尝试对其进行缩放。

我希望这是有道理的。我知道这是一个很长的问题,但我真的想让用户在拍照时使用全屏,然后将其缩放到一半屏幕。

我是不是做错了?当图像最初被捕获为“全屏”图像时,我是否疯狂地认为我可以将图像正确缩放到屏幕的一半?

感谢您的帮助。

最佳答案

为了争论起见,假设您捕获的图像大小为 640x1136(iPhone 5 屏幕大小的两倍)并且您正试图将其显示在大小为 320x284(一半iPhone 5 屏幕的大小)。正如您已经从这些尺寸中看到的那样,捕获的图像的宽度小于其高度,而 UIImageView 的宽度大于其高度 - 比例不同。

因此,缩放捕获的图像以适合 UIImageView 的宽度(按 0.5 缩放)意味着捕获的图像大小为 320x568 - 它的高度大于 UIImageView的高度。缩放捕获的图像以适合 UIImageView 的高度(按 0.25 缩放)意味着捕获的图像大小为 160x284 - 它的宽度小于 UIImageView 的宽度.

图像无法完全按照您希望的方式缩放。但是,您可以使用 UIViewContentModeScaleAspectFill 来填充整个 UIImageView 但会丢失一些图像(图像的高度太大而不适合)。您还可以选择使用 UIViewContentModeScaleAspectFit,这将显示整个图像,但会在两侧留出一些空间(图像的宽度太小)。

您的另一个选择是首先以 UIImageView 的比例实际捕获图像,但这意味着您将无法捕获全屏图像。

关于ios - 将它用于 UIImageView 时 UIImage 失真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com