修复 Bytes 迁移后的图片类型边界

统一使用 Bytes 的只读引用并在旧 Vec 接口处显式转换。

修复编辑器参考图对齐与 Raw PNG 解码编译错误。
This commit is contained in:
2026-09-11 17:52:00 +08:00
parent 31fd1da495
commit 4a32ee37c4
3 changed files with 5 additions and 4 deletions
@@ -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);
}
@@ -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(),
};
+1 -1
View File
@@ -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();