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?
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)
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).
Swift 3
let uploadData = UIImagePNGRepresentation(image)
let array = [UInt8](uploadData)
print("Image size in bytes:\(array.count)")
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)
let data = UIImageJPEGRepresentation(image, 1)
let imageSize = data?.count
Dupliquer de Comment obtenir la taille d’un UIImage en ko?
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).
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)