修复 Bytes 迁移后的图片类型边界
统一使用 Bytes 的只读引用并在旧 Vec 接口处显式转换。 修复编辑器参考图对齐与 Raw PNG 解码编译错误。
This commit is contained in:
@@ -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(),
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user