我在用
UIImagePickerControllerDelegate,
UINavigationControllerDelegate,
UIPopoverControllerDelegate
这些代表从我的画廊或我的相机中选择图像。那么,选择图像后如何获得图像文件的大小?
我想使用这个:
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 {
}
但是在这里我需要一个路径,但是如果没有路径,如何仅通过图像文件就能获得路径呢?
请检查google的1 kb到1000字节。
https://www.google.com/search?q=1+kb+%3D+how+many+bytes&oq=1+kb+%3D+how+many+bytes&aqs=chrome..69i57.8999j0j1&sourceid=chrome&ie=UTF-8
因此,在获得适当大小的同时,我通过在App Bundle中添加图像以及在模拟器中添加照片来添加了多种方案。好吧,我从Mac上拍摄的图像为299.0 KB。
方案1: 将图像添加到应用程序捆绑包
在Xcode中添加图片后,图片大小将在项目目录中保持不变。但是您可以从它的路径中获得它的大小,它将减小到257.0
KB。这是设备或模拟器中使用的图像的实际大小。
guard let aStrUrl = Bundle.main.path(forResource: "1", ofType: "png") else { return }
let aUrl = URL(fileURLWithPath: aStrUrl)
print("Img size = \((Double(aUrl.fileSize) / 1000.00).rounded()) KB")
extension URL {
var attributes: [FileAttributeKey : Any]? {
do {
return try FileManager.default.attributesOfItem(atPath: path)
} catch let error as NSError {
print("FileAttribute error: \(error)")
}
return nil
}
var fileSize: UInt64 {
return attributes?[.size] as? UInt64 ?? UInt64(0)
}
var fileSizeString: String {
return ByteCountFormatter.string(fromByteCount: Int64(fileSize), countStyle: .file)
}
var creationDate: Date? {
return attributes?[.creationDate] as? Date
}
}
方案2: 在模拟器中将图像添加到照片
将图像html" target="_blank">添加到模拟器或设备中的照片时,图像的大小从299.0 KB增加到393.0 KB。存储在设备或模拟器的文档目录中的图像的实际大小。
Swift 4及更早版本
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.count
print("size of image in KB: %f ", Double(imageSize) / 1000.0)
斯威夫特5
let image = info[UIImagePickerController.InfoKey.originalImage] as! UIImage
let imgData = NSData(data: image.jpegData(compressionQuality: 1)!)
var imageSize: Int = imgData.count
print("actual size of image in KB: %f ", Double(imageSize) / 1000.0)
通过添加.rounded(),它将为您提供393.0 KB,如果不使用它,则将为393.442
KB。因此,请使用上述代码一次手动检查图像尺寸。由于图像的大小在不同的设备和Mac中可能会有所不同。我只在Mac mini和模拟器iPhone
XS上进行过检查。
问题内容: 我尝试了几种方法来获取文件大小,但始终为零。 我在日志中: 问题答案: 使用而不是 +调用attr上的.fileSize()。 在Swift 2.0中,我们使用do try catch模式,如下所示: 在Swift 3.x / 4.0中:
问题内容: 我使用以下代码实例化了一个对象: 如何获得此文件的大小? 是什么区别,和? 问题答案: 使用类中的方法。从javadocs: 返回此抽象路径名表示的文件的长度。如果此路径名表示目录,则未指定返回值。 对于问题的第二部分,直接来自的javadocs: 返回此抽象路径名所命名的分区上该虚拟机可用的字节数 返回此抽象路径名命名的分区的大小 返回此抽象路径名所命名的分区中未分配的字节数
本文向大家介绍如何在C#中获取文件大小?,包括了如何在C#中获取文件大小?的使用技巧和注意事项,需要的朋友参考一下 FileInfo类用于处理文件及其在C#中的操作。 它提供了用于创建,删除和读取文件的属性和方法。它使用StreamWriter类将数据写入文件。它是System.IO命名空间的一部分。 Directory属性检索代表文件父目录的对象。 DirectoryName属性检索文件的父目录
我有一张图片上面有文字。我需要从图像中提取文本。 例如:假设我有一个图像,在图像之上我有一个标志“诺基亚”。我想从图像中提取作为文本的徽标。
我想获取文件夹大小并重命名它,如果我的文件夹大小超过500 mbs然后重命名文件夹,下载到MusicDownload
问题内容: 我正在尝试使用Swift来获取UIImage中像素的颜色,但它似乎总是返回0。这是从@Minas 对此线程的回答中转换的代码: 提前致谢! 问题答案: 由于遇到了类似的问题,一些搜索将我引到了这里。您的代码工作正常。该问题可能是由您的图像引起的。 码: 发生的是此方法将从图像的CGImage中选择像素颜色。因此,请确保您选择的是正确的图像。例如,如果您的UIImage是200x200,