aaaa

[Kotlin-Android] How to check những file ảnh bị gán mác corrupted/damaged.

Như tiêu đề:

Như này
Hoặc như thế này

Yêu cầu củ l này làm mình mất 50k :)

Để get file name extension thì chúng ta thể dùng cách get tên file để đọc và dự đoán file type của ảnh.

Đối với cách trên thì nếu chỉ là tên file và đúng định dạng thì ez ko có vấn đề gì cả, nhưng khi người dùng cố tình đổi đuôi file (ví dụ: có 1 file 1.txt và đổi thành 1.jpg) thì lúc này image sẽ ko tuân theo nguyên tắc mimetype extensions nữa.

Lúc này mình sẽ dùng BitmapFactory để decode dựa vào file đã có:

fun File.isImage(): Boolean {
val options = BitmapFactory.Options()
options.inJustDecodeBounds = true
BitmapFactory.decodeFile(this.absolutePath, options)
return options.outWidth != -1 && options.outHeight != -1
}

Doc của hệ thống: nếu trong quá trình decode xảy ra lỗi thì outWidth và outHeight sẽ = -1

ref: https://stackoverflow.com/questions/13760269/android-how-to-check-if-file-is-image

Happy coding every1.