gpt4 book ai didi

ios - 如何在不转换为 NSData 的情况下获取 UIImage(ImageURL) 高度和宽度

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:38:38 25 4
gpt4 key购买 nike

在我的项目中,我需要以之字形方式显示不同大小的图像。所以,我将来自服务的 uiimages(url) 转换为 NSData,然后我得到了 uiimage。我的代码是

NSURL *url = [NSURL URLWithString:[[_result objectAtIndex:i ] valueForKey:@"PImage"]];

NSData *data = [NSData dataWithContentsOfURL:url];

UIImage *image = [UIImage imageWithData:data];

所以我可以获得图像大小(宽度和高度),但我的问题是根据图像大小,我需要创建 UIView,这段代码对我来说工作正常,但它是加载 8 张图像花费太多时间(将近 25 秒)。我认为将 UIImage 转换为 NSData 需要时间。有没有办法在不将其转换为 NSData

的情况下获取图像大小(宽度和高度)

谢谢你花时间陪我。

最佳答案

您可以获取图像属性,而无需使用 ImageIO 框架从磁盘实际加载整个图像数据:

@import ImageIO;
...

NSURL *imageURL = … // Init URL somehow
CGImageSourceRef imgSource = CGImageSourceCreateWithURL((__bridge CFURLRef)url, NULL);
NSDictionary* imageProps = (__bridge_transfer NSDictionary*) CGImageSourceCopyPropertiesAtIndex(imgSource, 0, NULL);

NSLog(@"%@", imageProps);
CFRelease(imgSource);

图像的宽度和高度将存储在 PixelHeightPixelWidth 键下的字典中(使用 png 图像测试,可能其他图像格式将使用不同的键)

关于ios - 如何在不转换为 NSData 的情况下获取 UIImage(ImageURL) 高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20042801/

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