gpt4 book ai didi

objective-c - 10.7.4 和 libPNG

转载 作者:行者123 更新时间:2023-12-03 17:24:38 25 4
gpt4 key购买 nike

自从我更新到 10.7.4 以来,我的 NSImage 代码就开始出现问题。当我读出图像的表示形式、选择位图图像表示形式并尝试将其写入 PNG 文件时,我收到错误。

因此我尝试通过“常规”方式进行操作,但出现以下错误:

enter image description here

我的第一个猜测是删除 libPNG 的损坏版本并将其替换为可用的版本。关于我应该如何解决这个问题有什么建议吗?我可以尝试编译旧版本的 libPNG 并读出位图图像并自己写出来。很喜欢 Lion 中 OSX 的质量下降到 Windows Vista 的水平。

是的,OSX 使用 libPNG:http://d.pr/i/nOEX

为了更清楚地说明这一点,这是我的测试构建代码:

NSImage *image = [[NSImage alloc] initWithContentsOfFile:@"/Users/jabwd/Desktop/Icons/4099.ico"];

NSLog(@"%@",[image representations]);
NSImageRep *biggest = nil;
for(NSImageRep *rep in [image representations])
{
if( ! biggest )
{
biggest = rep;
}
else if( [rep size].width >= [biggest size].width && [rep size].height >= [biggest size].height )
{
biggest = rep;
}
}

if( biggest && [biggest isKindOfClass:[NSBitmapImageRep class]] )
{
NSBitmapImageRep *bitmap = (NSBitmapImageRep *)biggest;
NSData *data = [bitmap representationUsingType:NSPNGFileType properties:nil];
[data writeToFile:@"/Users/jabwd/Desktop/test.png" atomically:false];
}

正如你所看到的,我假设图像中有多种表示形式。在这种情况下我可以这样做,因为我正在加载某种类型的图标,它是一个私有(private)项目,不会落入某些用户的手中=>我有另一个更大的应用程序需要执行特定的任务实现自动化。

最佳答案

看起来 ImageIO.framework 在 10.7.4 中存在一些错误,它与 10.7.3 上发现的 libPNG 版本相同。使用自动程序脚本将图像转换为 jpeg,然后再将其转换为 png 似乎有效。

关于objective-c - 10.7.4 和 libPNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10664467/

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