2014-11-17 45 views
0

我在這裏感到困惑。IOS 7 - 無法讀取/加載圖像

UIImage *image = [UIImage imageNamed:@"search.png"]; 
    NSData *data = UIImagePNGRepresentation(image); 
    NSLog(@"%d", [data length]); 

什麼閱讀:859個字節

實際文件:244KB

因此,我想看看有什麼沒有得到加載:

NSString *byteArray = [data base64Encoding]; 

及解碼處理B64爲二進制,在圖片瀏覽器中查看它的1/4圖片。還有一點奇怪的是,幾行後面的另一個.png以相同的方式導入,並且.png工作正常。

資源

圖像我試圖負載:http://i.imgur.com/a4nzbUo.png

進口的結果是:http://i.imgur.com/Ytwb1w4.png

的形象,做工作:http://i.imgur.com/gJ4R8UX.png

我是什麼失蹤?

+1

絕對沒有理由認爲'search.png'應該很大(如'UIImagePNGRepresentation'返回<1kb;您知道該函數不會返回原始源字節,對不對?)。 – mattt

+0

不,不知道。 – FSA21

回答

1

幾百字節到PNG文件中,它開始嵌入200kb的RDF數據沒有明顯的原因(使用Photoshop「Save ...」而不是「Save for Web ...」,也許?):

<?xpacket begin="Ôªø" id="W5M0MpCehiHzreSzNTczkc9d"?> 
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c021 79.155772, 2014/01/13-19:44:00  "> 
    <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
... 

我不知道這是否與描述的行爲有關,但它肯定是令人不安的。假設這是iOS應用程序中的UI,那麼我只需重新編碼您的圖像以將其全部去掉即可。

+0

查看'spunk_logo.png'(可以工作的圖像) - 它顯示相同的xpacket信息('strings spunk_logo.png | grep x')。這應該不成問題。然而,我嘗試了「另存爲網頁」,但是這導致了相同的xpacket數據。我嘗試了別的東西。這是我在Photoshop中的觀點:[鏈接](http://imgur.com/nCoTw8v)。這裏是iphone模擬器的結果:[LINK](http://imgur.com/xhgNwbW)。所以會發生什麼:我的.png中的所有內容都被轉換爲白色。這就是爲什麼徽標確實有效(因爲輪廓),但圖像不能。任何線索爲什麼我的.png變成完全白色的? – FSA21

+0

張貼此線程後,完全白色的圖像讓我斷定它沒有加載。但它確實加載,只有它顯示爲完全白色。這是導航欄中的UIButton。 – FSA21

+0

啊,導航欄中的UIButtons總是有色的。我必須使用的解決方案是''[setBackgroundImage:...]'。我會接受你的回答作爲答案,因爲它幫助我找出真正發生的事情。謝謝。 – FSA21