2015-08-27 25 views
-5

通過從系統中拖動文件將.gif文件導入到xcode模擬器時,自動將其轉換爲.png文件。swift中的GIF文件

+0

http://stackoverflow.com/a/16996915/294884 [轉換圖像使用IOS爲GIF] – Fattie

+0

可能重複(http://stackoverflow.com/questions/16996690/convert-images-to- gif-using-ios) – Moritz

+0

我已經鏈接的問題的標題與您的不一樣,但接受的答案包含您的解決方案。 – Moritz

回答

0

如果要從Xcode的模擬器相機庫導入gif文件,請確保從模擬器的safari下載.gif文件,或將gif從應用程序保存到相機庫。 如果我們通過從系統拖動文件將.gif文件導入到xcode模擬器,它將自動轉換爲.png文件。

let savingPath : AnyObject = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true)[0] 

    var library:ALAssetsLibrary? = ALAssetsLibrary() 
    var referenceURL : NSURL = info[UIImagePickerControllerReferenceURL] as! NSURL 
    library!.assetForURL(referenceURL, resultBlock: { (asset : ALAsset!) -> Void in 
     var assetRep : ALAssetRepresentation = asset.defaultRepresentation() 
     let sizeOfRawDataInBytes: Int = Int(assetRep.size()) 
     var rawData: NSMutableData = NSMutableData(length: sizeOfRawDataInBytes)! 
     var bufferPtr: UnsafeMutablePointer<Void> = rawData.mutableBytes 
     var bufferPtr8: UnsafeMutablePointer<UInt8> = UnsafeMutablePointer<UInt8>(bufferPtr) 

     var error: NSError? = nil 
     var buffered = assetRep.getBytes(bufferPtr8, fromOffset: 0, length: sizeOfRawDataInBytes, error: &error) 
     let newData: NSData = NSData(bytesNoCopy: bufferPtr8, length: buffered, freeWhenDone: false) 

     newData.writeToFile(savingPath , atomically: true)