gpt4 book ai didi

macos - Swift OS X - 将 .jpeg 保存到 NSImage 数组中

转载 作者:行者123 更新时间:2023-11-30 14:10:53 27 4
gpt4 key购买 nike

我有一个用 Swift 编写的 OS X 应用程序,我正在尝试遍历一个目录并将每个图像保存到 NSImage 数组中,以便我可以一次在 NSImageView 中显示它们。

我目前的代码如下:

func LoadImages() {
let fileManager = NSFileManager.defaultManager()
let enumerator:NSDirectoryEnumerator = fileManager.enumeratorAtPath(strPhotoDirectory)!
while let element = enumerator.nextObject() as? String {
if element.hasSuffix("jpg") || element.hasSuffix("jpeg") {
self.images.append(NSImage(contentsOfFile: element)!)
}
}

self.imageCurrent.image = self.images[0] // Sets my imageView to the first image
}

其中 strPhotoDirectory 等于文件路径。

目前,调试器在最后一行崩溃(将 imageView 设置为第一个图像),因为数组超出范围,我认为这意味着图像从未保存过,所以数组为空。

我尝试po调试器控制台来查找运行时变量的一些值,并发现 element.hasSuffix("XXX") 对于 jpgjpegJPGJPEG 返回 false。我尝试保存的图像的文件名是 VH-YIZ VOZ B738 - YSSY - 26-07-2015 - 1 - Rotating on 34R,扩展名为 .JPEG

我做错了什么?

提前致谢。

编辑当我运行代码时,它到达上面指定的行并输出:

strPhotoDirectory = /Users/Matt/Downloads/Test/
Total Path = /Users/Matt/Downloads/Test/VH-YIZ VOZ B738 - YSSY - 10-04-2015 - 1 - On short final for 25.JPG

然后:

fatal error: unexpectedly found nil while unwrapping an Optional value

最佳答案

我通过确保从完整路径加载 NSImage 来让您的代码正常工作

   func LoadImages() {
//
// make certain to append a slash (/) at the end!
let strPhotoDirectory = "/Users/me/Pictures/"

//
let fileManager = NSFileManager.defaultManager()
let enumerator:NSDirectoryEnumerator = fileManager.enumeratorAtPath(strPhotoDirectory)!
while let element = enumerator.nextObject() as? String {
if element.hasSuffix("jpg") || element.hasSuffix("jpeg") {
if let image = NSImage(contentsOfFile: strPhotoDirectory + element)
{
self.images.append(image)
}
}
}

self.imageCurrent.image = self.images[0] // Sets my imageView to the first image
}

关于macos - Swift OS X - 将 .jpeg 保存到 NSImage 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31778116/

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