web-dev-qa-db-fra.com

Comment obtenir la taille du fichier image dans Swift?

J'utilise 

UIImagePickerControllerDelegate,
UINavigationControllerDelegate,
UIPopoverControllerDelegate

ces délégués pour choisir une image de ma galerie ou de mon appareil photo. Alors, comment puis-je obtenir la taille du fichier image après avoir choisi une image?

Je veux utiliser ceci:

let filePath = "your path here"
    var fileSize : UInt64 = 0

    do {
        let attr : NSDictionary? = try NSFileManager.defaultManager().attributesOfItemAtPath(filePath)

        if let _attr = attr {
            fileSize = _attr.fileSize();
            print(fileSize)
        }
    } catch {
    }

mais ici il me faut un chemin, mais comment puis-je obtenir sans chemin, par fichier image?

22
Orkhan Alizade
  var image = info[UIImagePickerControllerOriginalImage] as! UIImage
    var imgData: NSData = NSData(data: UIImageJPEGRepresentation((image), 1)) 
// var imgData: NSData = UIImagePNGRepresentation(image) 
// you can also replace UIImageJPEGRepresentation with UIImagePNGRepresentation.
    var imageSize: Int = imgData.length
    print("size of image in KB: %f ", Double(imageSize) / 1024.0)
57
Dhaivat Vyas

Swift 3/4:

if let imageData = UIImagePNGRepresentation(image) {
     let bytes = imageData.count
     let kB = Double(bytes) / 1000.0 // Note the difference
     let KB = Double(bytes) / 1024.0 // Note the difference
}

Veuillez noter la différence entre Ko et Ko. Répondre ici parce que dans mon cas, nous avions un problème alors que nous considérions le kilo-octet comme 1024 octets mais le côté serveur le considérait comme 1000 octets, ce qui causait un problème. Lien pour en savoir plus.

PS. Presque sûr que vous irez avec kB (1000).

6
Tung Fam

Swift 3

let uploadData = UIImagePNGRepresentation(image)
let array = [UInt8](uploadData)
print("Image size in bytes:\(array.count)")
3
JP Aquino
let selectedImage = info[UIImagePickerControllerOriginalImage] as!  UIImage 
let selectedImageData: NSData = NSData(data:UIImageJPEGRepresentation((selectedImage), 1)) 
let selectedImageSize:Int = selectedImageData.length 
print("Image Size: %f KB", selectedImageSize /1024.0)
1
Adarsh G J
let data = UIImageJPEGRepresentation(image, 1)
let imageSize = data?.count

Dupliquer de Comment obtenir la taille d’un UIImage en ko?

0
efremidze
let imageData = UIImageJPEGRepresentation(image, 1)
let imageSize = imageData?.count

UIImageJPEGRepresentation - renvoie l'objet Data de l'image spécifiée au format JPEG. La valeur 1.0 représente la moindre compression (proche de l'image d'origine).

imageData? .count - renvoie la longueur des données (nombre de caractères égal à octets).

Important! UIImageJPEGRepresentation ou UIImagePNGRepresentation ne renverra pas l'image d'origine. Mais si vous utilisez des données comme source pour le téléchargement, la taille du fichier doit être identique à celle du serveur (même en utilisant la compression).

0
Kirill Artemenko

Swift 4.2

let jpegData = image.jpegData(compressionQuality: 1.0)
let jpegSize: Int = jpegData?.count ?? 0
print("size of jpeg image in KB: %f ", Double(jpegSize) / 1024.0)
0
PinkeshGjr