diff --git a/src/renderer/src/aiCore/middleware/feat/ImageGenerationMiddleware.ts b/src/renderer/src/aiCore/middleware/feat/ImageGenerationMiddleware.ts index ceb8d791d7..500381607f 100644 --- a/src/renderer/src/aiCore/middleware/feat/ImageGenerationMiddleware.ts +++ b/src/renderer/src/aiCore/middleware/feat/ImageGenerationMiddleware.ts @@ -50,7 +50,9 @@ export const ImageGenerationMiddleware: CompletionsMiddleware = if (!block.file) return null const binaryData: Uint8Array = await FileManager.readBinaryImage(block.file) const mimeType = `${block.file.type}/${block.file.ext.slice(1)}` - return await toFile(new Blob([binaryData]), block.file.origin_name || 'image.png', { type: mimeType }) + return await toFile(new Blob([binaryData.slice()]), block.file.origin_name || 'image.png', { + type: mimeType + }) }) ) imageFiles = imageFiles.concat(userImages.filter(Boolean) as Blob[]) diff --git a/src/renderer/src/components/ImageViewer.tsx b/src/renderer/src/components/ImageViewer.tsx index ddb28a4d52..a18f4d00c8 100644 --- a/src/renderer/src/components/ImageViewer.tsx +++ b/src/renderer/src/components/ImageViewer.tsx @@ -36,7 +36,7 @@ const ImageViewer: React.FC = ({ src, style, ...props }) => { if (!match) throw new Error('无效的 base64 图片格式') const mimeType = match[1] const byteArray = Base64.toUint8Array(match[2]) - const blob = new Blob([byteArray], { type: mimeType }) + const blob = new Blob([byteArray.slice()], { type: mimeType }) await navigator.clipboard.write([new ClipboardItem({ [mimeType]: blob })]) } else if (src.startsWith('file://')) { // 处理本地文件路径 diff --git a/src/renderer/src/pages/home/Messages/MessageImage.tsx b/src/renderer/src/pages/home/Messages/MessageImage.tsx index a0faf46d07..413f0a2cb3 100644 --- a/src/renderer/src/pages/home/Messages/MessageImage.tsx +++ b/src/renderer/src/pages/home/Messages/MessageImage.tsx @@ -62,7 +62,10 @@ const MessageImage: FC = ({ block }) => { byteArrays.push(byteArray) } - const blob = new Blob(byteArrays, { type: mimeType }) + const blob = new Blob( + byteArrays.map((b) => b.slice()), + { type: mimeType } + ) await navigator.clipboard.write([new ClipboardItem({ [mimeType]: blob })]) } else { throw new Error('无效的 base64 图片格式')