2
在應用程序中,下面的代碼只是在IOS版本工作得很好9.3.5 - 10.3.x中一個的UIImage轉換爲TIFF:CGImageDestinationAddImage臭蟲在iOS的11
func convertUIImageToTIFF(uiImage: UIImage) -> NSData {
let propertiesTiff: [NSString: AnyObject] = [
kCGImagePropertyTIFFXResolution: 200 as AnyObject,
kCGImagePropertyTIFFYResolution: 200 as AnyObject,
kCGImagePropertyTIFFCompression: 4 as AnyObject
]
let properties: [NSString: AnyObject] = [
kCGImagePropertyDepth: 1 as AnyObject,
kCGImagePropertyTIFFDictionary: propertiesTiff as AnyObject
]
let mutableData: CFMutableData = NSMutableData()
if let imageDestination = CGImageDestinationCreateWithData(mutableData, kUTTypeTIFF, 1, nil), let cgImage = uiImage.cgImage {
CGImageDestinationAddImage(imageDestination, cgImage, properties as CFDictionary?)
CGImageDestinationFinalize(imageDestination)
}
return NSData(data: mutableData as Data)
}
這導致了一個NSData對象是顯然是被壓縮的,這可以通過其字節數(根據圖像內容在50kb和220kb之間)來看到。
由於iOS 11 Beta(在Beta 9上測試過),添加TIFF屬性並應用壓縮不再有效:開始發送的tiff文件大約8Mb,並且不包括XResolution標頭(在發送的數據中到使用Alamofire的服務器)。
任何幫助表示讚賞。
更新:問題依然存在於Beta 10和GM上。
我們看到這個無法正確生成帶有透明bg的動畫gif。 –
我也在蘋果開發者論壇上發佈了這個問題,直到今天還沒有迴應:[link] https://forums.developer.apple.com/message/258103#258103 – Thomas
這裏也有類似的情況。我能夠使用類似的代碼創建gif,但在iOS 11中,它只是創建一個空白圖像。你有沒有找到工作? –