From 77931f6d8abaadb16be17fd44e71bab1a471dd96 Mon Sep 17 00:00:00 2001 From: shenzuqiang Date: Thu, 12 Mar 2026 17:42:54 +0800 Subject: [PATCH] =?UTF-8?q?Dev=EF=BC=9A=201=E3=80=81sync?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/img/rabbit/viewmodel/CutoutViewModel.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/img/rabbit/viewmodel/CutoutViewModel.kt b/app/src/main/java/com/img/rabbit/viewmodel/CutoutViewModel.kt index 61b779f..3d0d7fc 100644 --- a/app/src/main/java/com/img/rabbit/viewmodel/CutoutViewModel.kt +++ b/app/src/main/java/com/img/rabbit/viewmodel/CutoutViewModel.kt @@ -14,7 +14,7 @@ import com.img.rabbit.utils.ImageUtils import com.img.rabbit.utils.PhotoCutter import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MultipartBody -import okhttp3.RequestBody +import okhttp3.RequestBody.Companion.toRequestBody import java.io.File import java.io.IOException import kotlin.text.ifEmpty @@ -56,7 +56,7 @@ class CutoutViewModel : BaseViewModel() { fun cutoutImageFromService(context: Context, uri: Uri, onResult: (isSuccess: Boolean, croppedBitmap: Bitmap?) -> Unit) { mLaunch { try { - // 1. 获取并压缩图片为 PNG (后端示例中使用了 .png,可能只支持 PNG) + // 1. 获取并压缩图片为 PNG (.png/jpg/jpeg 只支持这三种格式,当前选择使用PNG) val bitmap = ImageUtils.getBitmapFromUri(context, uri) ?: throw IOException("无法获取图片") val outputStream = java.io.ByteArrayOutputStream() // PNG 是无损的,质量参数 100 即可 @@ -65,7 +65,7 @@ class CutoutViewModel : BaseViewModel() { bitmap.recycle() // 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 后缀 // 不要直接用 uri.lastPathSegment,除非你能确定它带后缀