gpt4 book ai didi

objective-c - iOS - 旋转图像或图片

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

我的 iOS 应用程序从互联网下载一些图像并将其显示在屏幕上(iPhone 纵向布局)。其中一些图像的宽度大于高度,在这种情况下,当图像呈现到屏幕上时,它们会显得被压扁(想象一下宽屏电视的图片缩小到 iPhone 的宽度)。我想要做的是,每当图像的宽度比图像的高度宽时,我想将图片顺时针旋转90度(进入横向布局模式),将其保存到应用程序的文档文件夹中,然后呈现它在屏幕上 - 这样,宽屏电视的图像(例如)会旋转 90 度,但图像的长宽比不会完全被破坏。

由于各种复杂的原因,我无法使用我的应用程序的横向布局 - 太多其他副作用。这是我写的代码:

UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]];

CGFloat width = image.size.width;
CGFloat height = image.size.height;

if(width > 1.2*height) {
NSLog(@"rotate the image");
CGImageRef imageRef = [image CGImage];
image = [UIImage imageWithCGImage:imageRef scale:1.0 orientation:UIImageOrientationLeft];
}

然后我将图像保存到应用程序的文档文件夹中。然后打开一个新的 UIViewController,它读取保存在文档文件夹中的图像文件,然后打开该图像。问题是,图像根本没有出现旋转 - 只是以与原始图像相同的方式出现 - 没有任何旋转。我确实知道上面的代码尝试做它应该做的事情,因为我确实在控制台中看到 NSLog“旋转图像”。但不知何故,该图像没有保存为旋转图像。

那么,我应该如何解决这个问题?

编辑:保存图像的代码:

NSString *documentsDirectory = [NSHomeDirectory()        stringByAppendingPathComponent:@"Documents"];

// Create image name
NSString *path = [@"" stringByAppendingFormat:@"%@%@", @"image", @".png"];

// Create full image path
path = [documentsDirectory stringByAppendingPathComponent:path];

path = [NSString stringWithFormat:@"%@", path];

// Write image to image path
NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(image)];
[data1 writeToFile:path atomically:YES];

最佳答案

关于objective-c - iOS - 旋转图像或图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12397909/

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