? Swift從ALAsset中獲取照片原圖轉(zhuǎn)NSData和相關(guān)用法

直接復(fù)制圖片的字節(jié)數(shù)據(jù)(拿到原圖數(shù)據(jù))

let representation = resulttll?.defaultRepresentation() //resulttll為ALAsset屬性
    
let imageBuffer = UnsafeMutablePointer<UInt8>.allocate(capacity: Int((representation?.size())!))
    
let bufferSize = representation?.getBytes(imageBuffer, fromOffset: Int64(0),
                                             length: Int((representation?.size())!), error: nil)

let datall:NSData =  NSData(bytesNoCopy:imageBuffer ,length:bufferSize!, freeWhenDone:true)

縮略圖 (遍歷相冊(cè),自定義相冊(cè)時(shí)可以使用)
注意: thumbnail(小正方形的縮略圖); aspectRatioThumbnail(按原始資源長(zhǎng)寬比例的縮略圖)

assetsLibrary.enumerateGroupsWithTypes(ALAssetsGroupAll, usingBlock: { (group, stop) in
        if group != nil {
            let model = AlbumModel()
            if group?.value(forProperty: ALAssetsGroupPropertyName) != nil {
                model.albumName = group?.value(forProperty: ALAssetsGroupPropertyName)as!String
            }else{
                model.albumName = ""
            }
            model.imageArray = NSMutableArray()
            //倒敘
            group?.enumerateAssets(options: NSEnumerationOptions.reverse, using: { (result, index, stop) in
                if result != nil {
                    let imageModel = ImageModel()
                    imageModel.isSelected = false
                    imageModel.image = UIImage(cgImage: (result?.thumbnail().takeUnretainedValue())!)
                    imageModel.pictureRest = result
                    model.imageArray.add(imageModel)
                    
                    self.currentImageArray = model.imageArray
                }
            })
            
            hud.hide(animated: true)
            self.dataArray.add(model)
        }else{
            for i in 0 ..< self.dataArray.count {
                let model = self.dataArray[i] as!AlbumModel
                self.titleArray.add(model.albumName)
                if model.albumName == "相機(jī)膠卷" {
                    self.selectedAlbumModel = self.dataArray[i] as! AlbumModel
                    self.currentIndex = i
                    self.currentImageArray = self.selectedAlbumModel.imageArray
                }
            }
            hud.hide(animated: true)
            self.albumTableView.dataArray = self.titleArray
            self.collectionView.reloadData()
        }
    }) { (error) in
        print("\(error)")
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容