mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +08:00 
			
		
		
		
	WebP压缩Gif时,自动跳过转换失败的帧,并只提示最后一次错误
This commit is contained in:
		@@ -1007,23 +1007,29 @@ func (this *HTTPWriter) finishWebP() {
 | 
			
		||||
				Exact:    true,
 | 
			
		||||
			})
 | 
			
		||||
		} else if gifImage != nil {
 | 
			
		||||
			anim := gowebp.NewWebpAnimation(gifImage.Config.Width, gifImage.Config.Height, gifImage.LoopCount)
 | 
			
		||||
			var anim = gowebp.NewWebpAnimation(gifImage.Config.Width, gifImage.Config.Height, gifImage.LoopCount)
 | 
			
		||||
 | 
			
		||||
			anim.WebPAnimEncoderOptions.SetKmin(9)
 | 
			
		||||
			anim.WebPAnimEncoderOptions.SetKmax(17)
 | 
			
		||||
			defer anim.ReleaseMemory()
 | 
			
		||||
			webpConfig := gowebp.NewWebpConfig()
 | 
			
		||||
			var webpConfig = gowebp.NewWebpConfig()
 | 
			
		||||
			//webpConfig.SetLossless(1)
 | 
			
		||||
			webpConfig.SetQuality(f)
 | 
			
		||||
 | 
			
		||||
			var timeline = 0
 | 
			
		||||
 | 
			
		||||
			var lastErr error
 | 
			
		||||
			for i, img := range gifImage.Image {
 | 
			
		||||
				err = anim.AddFrame(img, timeline, webpConfig)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					break
 | 
			
		||||
					// 有错误直接跳过
 | 
			
		||||
					lastErr = err
 | 
			
		||||
					err = nil
 | 
			
		||||
				}
 | 
			
		||||
				timeline += gifImage.Delay[i] * 10
 | 
			
		||||
			}
 | 
			
		||||
			if lastErr != nil {
 | 
			
		||||
				remotelogs.Error("HTTP_WRITER", "'"+this.req.URL()+"' encode webp failed: "+lastErr.Error())
 | 
			
		||||
			}
 | 
			
		||||
			if err == nil {
 | 
			
		||||
				err = anim.AddFrame(nil, timeline, webpConfig)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user