大小"/>
android压缩图片到指定大小
fun compressImage(imageFile: File, maxSize: Long, quality: Int): File? {try {// 1. 将图像文件解码为Bitmap对象val options = BitmapFactory.Options()options.inJustDecodeBounds = falseoptions.inPreferredConfig = Bitmap.Config.RGB_565val bitmap = BitmapFactory.decodeFile(imageFile.absolutePath, options)// 2. 将Bitmap对象压缩为字节数组输出流val byteArrayOutputStream = ByteArrayOutputStream()bitmappress(Bitmap.CompressFormat.JPEG, quality, byteArrayOutputStream)var qt = quality// 3. 循环压缩,直到满足最大文件大小要求while (byteArrayOutputStream.toByteArray().size > maxSize && qt > 5) {byteArrayOutputStream.reset()bitmappress(Bitmap.CompressFormat.JPEG, qt, byteArrayOutputStream)qt -= 5 // 每次降低5%的压缩质量}// 4. 创建压缩后的文件并保存字节数组到文件中val compressedFile = File.createTempFile("compressed_", ".jpg")val fileOutputStream = FileOutputStream(compressedFile)fileOutputStream.write(byteArrayOutputStream.toByteArray())fileOutputStream.flush()fileOutputStream.close()return compressedFile} catch (e: IOException) {e.printStackTrace()}return null }
更多推荐
android压缩图片到指定大小
发布评论