簡體   English   中英

如何將NSInputStream轉換為UIImage

[英]How convert NSInputStream to UIImage

我有一個NSInputStream,我正在發送到服務器,在上傳過程中,我想顯示正在上傳的圖像。 方法位於單例中,它正在接收NSInputStream。 有沒有辦法讀取該流並將其轉換為UIImage?

我試過這個,但沒有運氣。 我的錯誤在哪里?

var buffer = [UInt8](count:1024, repeatedValue: 0)
    thumbnailStream.open()
    if (thumbnailStream.hasBytesAvailable){
        let len : Int = inputStream.read(&buffer, maxLength: buffer.count)
        var pictureData = NSData(bytes: buffer, length: len)
        var imagess = UIImage(data: pictureData)!
        self.headerProgress.imageView.image = imagess
        print("Data of image = \(pictureData.length)")

        }else{
        print("No bytes")
    }

謝謝!

我找到了這個問題的解決方案,它處於正常運行狀態。

    var count = 0
    let dataOfTheImage = NSMutableData()
    var buffer = [UInt8](count:1024, repeatedValue: 0)
    thumbnailStream.open()

    //MARK: Loop through thumbnail stream
    while (thumbnailStream.hasBytesAvailable){
        count = count + 1
        print("Counter: \(count)")
        //MARK: Read from the stream and append bytes to NSMutableData variable
        let len  = thumbnailStream.read(&buffer, maxLength: buffer.count)
        dataOfTheImage.appendBytes(buffer, length: len)

        //MARK: Size of the image in MB
        let size = Float(dataOfTheImage.length) / 1024.0 / 1024.0
        print("Data length = \(size)")
    }

    //MARK: Check if there are no bytes left and show the image
    if (thumbnailStream.hasBytesAvailable == false){
        thumbnailStream.close()
       // var pictureData = NSData(bytes: buffer, length: len)
        let progressImage = UIImage(data: dataOfTheImage)!
        dispatch_async(dispatch_get_main_queue(), {() -> Void in
            self.headerProgress.imageView.image = progressImage
        })
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM