當前位置:編程學習大全網 - 源碼下載 - 如何檢測或避免損失?

如何檢測或避免損失?

看了MKNetworkKit的源代碼和需求,發現使用了ImageIO.framework,這個框架要對圖像數據進行排序,否則可能會出現數據混亂。現在在網絡極差的情況下,暫時沒有發現這種情況。

2014 165438+10月26日補充:

我發現在引入ImageIO之後,圖片還是會有損壞的時候。在我快要放棄的時候,真的有了回報。在各種stackoverflow和google無解之後,我自己看了UIImage、UIImageView和ImageIO的源代碼和官方說明,發現了壹個棘手的辦法。您需要編寫以下兩個步驟:

1.讀取圖片數據,然後調用2中的方法進行驗證。

ns data * data =[ns data datawithcontentsofile:image path];

2.要確定它是否是有效的PNG圖片,請使用JPG的UIImageJPEGRepresentation方法。

/**

*檢查圖片是否是有效的PNG圖片。

*

* @param imageData直接從圖像文件中獲取的NSData對象。

*

* @return是有效的PNG圖片嗎?

*/

-(BOOL)isValidPNGByImageData:(ns data *)imageData

{

ui image * image =[ui image imageWithData:image data];

//第壹種情況:via[ui image imageWithData:data];直接生成圖片時,如果image是nil,那麽imageData壹定是無效的。

if(image = = nil & amp;& ampimageData!=零){

返回否;

}

//第二種情況,圖片壹部分沒問題,但是壹部分壞了,會通過第壹步,所以會用下面的方法。將圖片轉換成PNG數據。如果PNG數據能夠正確生成,那麽圖片就是完整的,OK。如果不是,那麽畫面就損壞了。

ns data * tempData = UIImagePNGRepresentation(image);

if (tempData == nil) {

返回否;

}否則{

返回YES

}

}

  • 上一篇:難道針對“鬼影”病毒,就真的無壹款比較好的防禦工具嗎?
  • 下一篇:AE怎麽制作粒子飄散文字動畫效果?AE制作粒子飄散文字動畫效果教程
  • copyright 2024編程學習大全網