diff --git a/server-rs/crates/api-server/src/editor_project.rs b/server-rs/crates/api-server/src/editor_project.rs index 0e89d6be9..c7069e175 100644 --- a/server-rs/crates/api-server/src/editor_project.rs +++ b/server-rs/crates/api-server/src/editor_project.rs @@ -4646,7 +4646,7 @@ fn prepare_editor_image_edit_references( ); } for (index, reference) in reference_images.iter_mut().enumerate() { - let decoded = image::load_from_memory(reference.bytes.as_slice()).map_err(|error| { + let decoded = image::load_from_memory(reference.bytes.as_ref()).map_err(|error| { AppError::from_status(StatusCode::BAD_REQUEST).with_details(json!({ "provider": "editor-image-edit", "message": format!("图片改造参考图不是有效图片:{error}"), @@ -4677,7 +4677,8 @@ fn prepare_editor_image_edit_references( image::DynamicImage::ImageRgba8(aligned), StatusCode::BAD_REQUEST, "图片改造参考图 16 对齐失败", - )?; + )? + .into(); reference.mime_type = "image/png".to_string(); reference.file_name = format!("editor-image-edit-reference-{}.png", index + 1); } diff --git a/server-rs/crates/api-server/src/editor_project_icon.rs b/server-rs/crates/api-server/src/editor_project_icon.rs index f7f318b86..a065f626b 100644 --- a/server-rs/crates/api-server/src/editor_project_icon.rs +++ b/server-rs/crates/api-server/src/editor_project_icon.rs @@ -2324,7 +2324,7 @@ pub async fn split_editor_icon_spritesheet( Err(_) => return Err(editor_icon_spritesheet_processing_timeout_error()), }; let source = DownloadedImage { - bytes: reference.bytes, + bytes: reference.bytes.to_vec(), mime_type: reference.mime_type, extension: "png".to_string(), }; diff --git a/server-rs/crates/api-server/src/raw_image.rs b/server-rs/crates/api-server/src/raw_image.rs index 29541924d..811d316d4 100644 --- a/server-rs/crates/api-server/src/raw_image.rs +++ b/server-rs/crates/api-server/src/raw_image.rs @@ -370,7 +370,7 @@ fn decode_image(value: RawImageData, field: &str) -> Result<(ReferenceImage, u32 if bytes.is_empty() { return Err(bad_request(format!("{field} 文件不能为空"))); } - let mut reader = ImageReader::new(Cursor::new(bytes.as_slice())) + let mut reader = ImageReader::new(Cursor::new(bytes.as_ref())) .with_guessed_format() .map_err(|_| bad_request(format!("{field} 文件必须是有效 PNG 文件")))?; let mut limits = image::Limits::default();