Kotlin,图像上传与改造需要很长时间

fcy6dtqo  于 2023-03-30  发布在  Kotlin
关注(0)|答案(1)|浏览(185)

我正在尝试从Android应用程序上传图像到Laravel服务器。
我正在使用@waqas7方法从下面的链接https://github.com/waqas7/UploadImageOnServer
问题是,文件太大,需要很长时间。有没有其他方法上传文件?像改变它的格式,以编码和更小的东西,我是一个网络开发人员大多数,所以如果你能回答的细节,这将是梦幻般的谢谢

z9smfwbn

z9smfwbn1#

对于任何人,可能得到了这个问题,我使用压缩方法,以减少大小

private fun compressImage(sourceImageFile: File): File? {
    val destinationFile = context?.getDestinationFileForImage()
    try {
        val timeToExecute =
            destinationFile?.let { CompressImage.compressImage(sourceImageFile, it) }
    } catch (e: Exception) {
    }
    return destinationFile
}

object CompressImage {

fun compressImage(sourceFile: File, destinationFile:File):Long{
    return measureTimeMillis {
        val currentBitmap = BitmapFactory.decodeFile(sourceFile.absolutePath)
        currentBitmap.compress(
            Bitmap.CompressFormat.JPEG,
            CompressFileUtils.COMPRESS_QUALITY,
            FileOutputStream(destinationFile)
        )
    }
}
}

你也失去了方向,所以你需要在压缩图像之前保存它

val attributes = arrayOf(
        ExifInterface.TAG_DATETIME,
        ExifInterface.TAG_DATETIME_DIGITIZED,
        ExifInterface.TAG_EXPOSURE_TIME,
        ExifInterface.TAG_FLASH,
        ExifInterface.TAG_FOCAL_LENGTH,
        ExifInterface.TAG_GPS_ALTITUDE,
        ExifInterface.TAG_GPS_ALTITUDE_REF,
        ExifInterface.TAG_GPS_DATESTAMP,
        ExifInterface.TAG_GPS_LATITUDE,
        ExifInterface.TAG_GPS_LATITUDE_REF,
        ExifInterface.TAG_GPS_LONGITUDE,
        ExifInterface.TAG_GPS_LONGITUDE_REF,
        ExifInterface.TAG_GPS_PROCESSING_METHOD,
        ExifInterface.TAG_GPS_TIMESTAMP,
        ExifInterface.TAG_MAKE,
        ExifInterface.TAG_MODEL,
        ExifInterface.TAG_ORIENTATION,
        ExifInterface.TAG_SUBSEC_TIME,
        ExifInterface.TAG_WHITE_BALANCE
    )

        val oldExif = ExifInterface(file)
        oldExif.getAttribute(attributes[16])
        exifData1 = oldExif.getAttribute(attributes[16])

相关问题