gpt4 book ai didi

macos - 从子目录加载视网膜图像

转载 作者:行者123 更新时间:2023-12-03 16:46:37 25 4
gpt4 key购买 nike

我正在使用 NSDrawNinePartImage() 绘制可拉伸(stretch)控件。由于这当然需要九个单独的图像来绘制零件(加上在其上绘制的一些额外图像),因此我有一个充满文件的目录,例如 top-left.pngtop-left @2x.png。我将此目录作为文件夹引用包含在我的应用程序包中。

不幸的是,常见的图像加载 API,例如 -[NSImage imageNamed:]-[NSBundle imageForResource:] 似乎不支持子目录,即使您在名称中添加斜杠。相反,我使用此方法加载图像:

- (NSImage*)popoverImage:(NSString*)name {
NSURL * url = [[NSBundle bundleForClass:self.class] URLForResource:name withExtension:@"png" subdirectory:@"popover"];
return [[NSImage alloc] initWithContentsOfURL:url];
}

这对于普通显示器效果很好,但它会忽略视网膜显示器的 2x 图像。我怎样才能让它加载视网膜图像?有没有比分别加载两个代表并手动组合它们更好的方法?我不想使用 TIFF 作为这些资源的源文件,因为我使用 Acorn 作为图像编辑器,上次检查时,它并不能很好地理解这样的复合图像格式。

最佳答案

简单的答案是使用 TIFF,您的担心是错误的。在 Xcode 中设置项目首选项“组合高分辨率图稿”并继续像现在一样使用 Acorn 生成两个 PNG。在构建过程中,Xcode 会将这两个 PNG 组合成一个 TIFF 并将其存储在您的包中。

关于macos - 从子目录加载视网膜图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16475613/

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