[英]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.