1

不知道我做错了什么,但是然后查看我刚刚使用我的应用程序拍摄的图像,图像被放大到原始图像上的特定位置,我不知道为什么。

这是我用于加载和显示图像的代码。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:path]];
imageView.contentMode = UIViewContentModeScaleAspectFill;
4

2 回答 2

1

您的图像正在被缩放,因为您已经告诉视图这样做:

imageView.contentMode = UIViewContentModeScaleAspectFill;

用简单的英语来说,这是告诉图像视图“通过缩放而不调整纵横比使图像适合视图”。

如果您不想缩放图像,您有几个选项。您可以确保您UIImageView的图像与您想要在其中显示的图像具有相同的纵横比,或者您可以将内容模式更改为其他内容(例如UIViewContentModeScaleToFill,它将拉伸您的图像以适合,或者UIViewContentModeCenter将其居中)。

于 2013-09-15T14:52:00.107 回答
1

这是因为您使用图像分配 init,而不是使用固定大小。您的图像比您想象的要大,并且看起来像“缩放”。

像这样做:

UIImageView* yourImageView = [[UIImageView alloc]initWithFrame:CGRectMake(x, y, width, height)];
yourImageView.image = [UIImage imageWithContentsOfFile:path];
yourImageView.contentMode = UIViewContentModeScaleAspectFill;
yourImageView.clipsToBounds = YES;
于 2013-09-15T14:49:42.023 回答