繁体   English   中英

10.7.4和libPNG

[英]10.7.4 and libPNG

自从我更新到10.7.4版以来,我的NSImage代码开始出现问题。 当我读出图像的表示形式时,请选择“位图”图像表示形式,然后尝试将其写出到PNG文件中,但会收到错误消息。

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

在此处输入图片说明

我的第一个猜测是删除损坏的libPNG版本,并用一个可用的版本替换它。 关于如何解决这个问题有什么建议吗? 我可以尝试编译旧版本的libPNG并读出位图图像,然后自己写出来。 非常喜欢OSX的质量如何降低到Lion中的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];
    }

如您所见,我假设图像中有多种表示形式。 我可以在这种情况下执行此操作,因为我正在加载某种类型的图标,这是一个私人项目,不会被某些用户使用=>对于我拥有的另一个更大的应用程序,它有一项特定的任务自动化。

看起来ImageIO.framework在10.7.4中有一些错误,与在10.7.3中找到的libPNG版本相同。 在将图像转换为png之前,使用自动脚本将图像转换为jpeg似乎可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM