diff --git a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/separation/workflow.rs b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/separation/workflow.rs index 771cec10a..da0c9e6b0 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/separation/workflow.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/separation/workflow.rs @@ -248,13 +248,12 @@ async fn write_processed_image_inner(processed_url: String, target: PathBuf) -> processed_url.chars().count() ); tokio::task::spawn_blocking(move || { + let encoded = processed_url + .split_once(',') + .map(|(_, data)| data) + .ok_or_else(|| "处理图 data URL 无效".to_string())?; let processed_bytes = base64::engine::general_purpose::STANDARD - .decode( - processed_url - .split_once(',') - .map(|(_, data)| data) - .unwrap_or_default(), - ) + .decode(encoded) .map_err(|error| format!("解析处理图失败:{error}"))?; let byte_len = processed_bytes.len(); fs::write(&target, processed_bytes)