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 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除非你能确定它带后缀