1、sync
This commit is contained in:
shenzuqiang 2026-03-12 17:42:54 +08:00
parent 5f527ca9d7
commit 77931f6d8a
1 changed files with 3 additions and 3 deletions

View File

@ -14,7 +14,7 @@ import com.img.rabbit.utils.ImageUtils
import com.img.rabbit.utils.PhotoCutter import com.img.rabbit.utils.PhotoCutter
import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.MultipartBody import okhttp3.MultipartBody
import okhttp3.RequestBody import okhttp3.RequestBody.Companion.toRequestBody
import java.io.File import java.io.File
import java.io.IOException import java.io.IOException
import kotlin.text.ifEmpty import kotlin.text.ifEmpty
@ -56,7 +56,7 @@ class CutoutViewModel : BaseViewModel() {
fun cutoutImageFromService(context: Context, uri: Uri, onResult: (isSuccess: Boolean, croppedBitmap: Bitmap?) -> Unit) { fun cutoutImageFromService(context: Context, uri: Uri, onResult: (isSuccess: Boolean, croppedBitmap: Bitmap?) -> Unit) {
mLaunch { mLaunch {
try { try {
// 1. 获取并压缩图片为 PNG (后端示例中使用了 .png可能只支持 PNG) // 1. 获取并压缩图片为 PNG (.png/jpg/jpeg 只支持这三种格式,当前选择使用PNG)
val bitmap = ImageUtils.getBitmapFromUri(context, uri) ?: throw IOException("无法获取图片") val bitmap = ImageUtils.getBitmapFromUri(context, uri) ?: throw IOException("无法获取图片")
val outputStream = java.io.ByteArrayOutputStream() val outputStream = java.io.ByteArrayOutputStream()
// PNG 是无损的,质量参数 100 即可 // PNG 是无损的,质量参数 100 即可
@ -65,7 +65,7 @@ class CutoutViewModel : BaseViewModel() {
bitmap.recycle() bitmap.recycle()
// 2. MediaType 修改为 image/png // 2. MediaType 修改为 image/png
val requestFile = RequestBody.create("image/png".toMediaTypeOrNull(), compressedBytes) val requestFile = compressedBytes.toRequestBody("image/png".toMediaTypeOrNull(),0,compressedBytes.size)
// 3. 构造 MultipartBody.Part关键强制给文件名加上 .png 后缀 // 3. 构造 MultipartBody.Part关键强制给文件名加上 .png 后缀
// 不要直接用 uri.lastPathSegment除非你能确定它带后缀 // 不要直接用 uri.lastPathSegment除非你能确定它带后缀