第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在以PFFile格式上傳到Parse之前,如何壓縮縮小圖像的大???(迅速)

在以PFFile格式上傳到Parse之前,如何壓縮縮小圖像的大小?(迅速)

HUH函數(shù) 2019-10-15 15:44:27
直接在手機(jī)上拍照后,我試圖將圖像文件上傳到Parse。但這會(huì)引發(fā)異常:由于未捕獲的異?!?NSInvalidArgumentException”而終止應(yīng)用程序,原因:“ PFFile不能大于10485760字節(jié)”這是我的代碼:在第一視圖控制器中:override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {    if (segue.identifier == "getImage")    {        var svc = segue.destinationViewController as! ClothesDetail        svc.imagePassed = imageView.image    }}在上傳圖像的視圖控制器中:let imageData = UIImagePNGRepresentation(imagePassed)let imageFile = PFFile(name: "\(picName).png", data: imageData)var userpic = PFObject(className:"UserPic")userpic["picImage"] = imageFile`但是我仍然需要將照片上傳到Parse。有什么方法可以減小圖像的尺寸或分辨率?
查看完整描述

3 回答

?
冉冉說

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

是的,你可以使用UIImageJPEGRepresentation,而不是UIImagePNGRepresentation減少圖像文件的大小。您可以按照以下方式創(chuàng)建擴(kuò)展UIImage:


Xcode 8.2?Swift 3.0.2


extension UIImage {

    enum JPEGQuality: CGFloat {

        case lowest  = 0

        case low     = 0.25

        case medium  = 0.5

        case high    = 0.75

        case highest = 1

    }


    /// Returns the data for the specified image in JPEG format.

    /// If the image object’s underlying image data has been purged, calling this function forces that data to be reloaded into memory.

    /// - returns: A data object containing the JPEG data, or nil if there was a problem generating the data. This function may return nil if the image has no data or if the underlying CGImageRef contains data in an unsupported bitmap format.

    func jpeg(_ quality: JPEGQuality) -> Data? {

        return UIImageJPEGRepresentation(self, quality.rawValue)

    }

}

編輯/更新:


Xcode 10 Swift 4.2


extension UIImage {

    enum JPEGQuality: CGFloat {

        case lowest  = 0

        case low     = 0.25

        case medium  = 0.5

        case high    = 0.75

        case highest = 1

    }


    /// Returns the data for the specified image in JPEG format.

    /// If the image object’s underlying image data has been purged, calling this function forces that data to be reloaded into memory.

    /// - returns: A data object containing the JPEG data, or nil if there was a problem generating the data. This function may return nil if the image has no data or if the underlying CGImageRef contains data in an unsupported bitmap format.

    func jpeg(_ jpegQuality: JPEGQuality) -> Data? {

        return jpegData(compressionQuality: jpegQuality.rawValue)

    }

}

用法:


if let imageData = image.jpeg(.lowest) {

    print(imageData.count)

}


查看完整回答
反對(duì) 回復(fù) 2019-10-15
?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊

如果要將圖像大小限制為某個(gè)具體值,可以執(zhí)行以下操作:


import UIKit


extension UIImage {

    // MARK: - UIImage+Resize

    func compressTo(_ expectedSizeInMb:Int) -> UIImage? {

        let sizeInBytes = expectedSizeInMb * 1024 * 1024

        var needCompress:Bool = true

        var imgData:Data?

        var compressingValue:CGFloat = 1.0

        while (needCompress && compressingValue > 0.0) {

        if let data:Data = UIImageJPEGRepresentation(self, compressingValue) {

            if data.count < sizeInBytes {

                needCompress = false

                imgData = data

            } else {

                compressingValue -= 0.1

            }

        }

    }


    if let data = imgData {

        if (data.count < sizeInBytes) {

            return UIImage(data: data)

        }

    }

        return nil

    } 

}


查看完整回答
反對(duì) 回復(fù) 2019-10-15
?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

Jus Fixing for Xcode 7,于09/21/2015測(cè)試,工作正常:


只需創(chuàng)建一個(gè)擴(kuò)展UIImage,如下所示:


extension UIImage

{

    var highestQualityJPEGNSData: NSData { return UIImageJPEGRepresentation(self, 1.0)! }

    var highQualityJPEGNSData: NSData    { return UIImageJPEGRepresentation(self, 0.75)!}

    var mediumQualityJPEGNSData: NSData  { return UIImageJPEGRepresentation(self, 0.5)! }

    var lowQualityJPEGNSData: NSData     { return UIImageJPEGRepresentation(self, 0.25)!}

    var lowestQualityJPEGNSData: NSData  { return UIImageJPEGRepresentation(self, 0.0)! }

}

然后,您可以像這樣使用它:


let imageData = imagePassed.lowestQualityJPEGNSData


查看完整回答
反對(duì) 回復(fù) 2019-10-15
  • 3 回答
  • 0 關(guān)注
  • 660 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)