From 778d36d373a4980e12e6c67ba471b826875c558e Mon Sep 17 00:00:00 2001 From: xiaoqidun Date: Mon, 12 Oct 2026 17:20:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=8E=8B=E7=BC=A9=E8=83=BD=E5=8A=9B):=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BC=82=E5=B8=B8=E5=9B=BE=E5=83=8F=E5=8E=8B?= =?UTF-8?q?=E7=BC=A9=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ofdgo_compression_resources.go | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/ofdgo_compression_resources.go b/ofdgo_compression_resources.go index e596efb..eea40d2 100644 --- a/ofdgo_compression_resources.go +++ b/ofdgo_compression_resources.go @@ -50,6 +50,7 @@ func (e *Editor) compressResourceParts(parts map[string][]byte, reader *Reader, } // compressResourceReferences 优化资源,复用自产页面引用并流式读取暂存页面 +// 图片优化结果仅在本次写出内复用,失败时保留原始编码 // 入参: parts 输出改动, reader 原包, removed 已移除条目, generated 本次自产页面及引用 // 返回: error 读取或取消错误 func (e *Editor) compressResourceReferences(parts map[string][]byte, reader *Reader, removed map[string]bool, generated map[string]editorGeneratedReferences) error { @@ -275,20 +276,17 @@ func (e *Editor) compressResourceReferences(parts map[string][]byte, reader *Rea var err error if !cached { candidate, err = optimizeImageResource(e.output.ctx, data, options, demand) - if err == nil { - imageResults[cacheKey] = nil - if len(candidate) < len(data) { - imageResults[cacheKey] = candidate - } else { - candidate = nil - } + if err := e.output.ctx.Err(); err != nil { + return err + } + imageResults[cacheKey] = nil + if err == nil && len(candidate) < len(data) { + imageResults[cacheKey] = candidate + } else { + candidate = nil } } - if err != nil { - if e.output.ctx.Err() != nil { - return e.output.ctx.Err() - } - } else if candidate != nil { + if candidate != nil { data = candidate parts[actual[key]] = data source.key.hash = sha256.Sum256(data)