mirror of
https://github.com/httprunner/httprunner.git
synced 2026-09-05 15:37:35 +08:00
fix: compress with compression rate of 95
This commit is contained in:
@@ -336,32 +336,18 @@ func compressImageBufferWithOptions(raw *bytes.Buffer, enableResize bool, maxWid
|
|||||||
newHeight = originalHeight
|
newHeight = originalHeight
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determine JPEG quality based on image size for optimal compression
|
jpegQuality := 95
|
||||||
jpegQuality := 60 // Default quality for better compression
|
|
||||||
if newWidth*newHeight > 500000 { // For very large images, use lower quality
|
|
||||||
jpegQuality = 50
|
|
||||||
} else if newWidth*newHeight < 100000 { // For small images, use higher quality
|
|
||||||
jpegQuality = 70
|
|
||||||
}
|
|
||||||
|
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
switch strings.ToLower(format) {
|
switch format {
|
||||||
case "jpeg", "jpg":
|
case "jpeg", "jpg", "png":
|
||||||
// Use adaptive JPEG compression quality
|
// compress with compression rate of 95
|
||||||
err = jpeg.Encode(&buf, resizedImg, &jpeg.Options{Quality: jpegQuality})
|
jpegOptions := &jpeg.Options{Quality: jpegQuality}
|
||||||
case "png":
|
err = jpeg.Encode(&buf, resizedImg, jpegOptions)
|
||||||
// Convert PNG to JPEG for better compression
|
if err != nil {
|
||||||
err = jpeg.Encode(&buf, resizedImg, &jpeg.Options{Quality: jpegQuality})
|
return nil, err
|
||||||
case "gif":
|
}
|
||||||
// Keep GIF format but with reduced colors for better compression
|
|
||||||
err = gif.Encode(&buf, resizedImg, &gif.Options{NumColors: 64})
|
|
||||||
default:
|
default:
|
||||||
// Default to JPEG for unknown formats
|
return nil, fmt.Errorf("unsupported image format: %s", format)
|
||||||
err = jpeg.Encode(&buf, resizedImg, &jpeg.Options{Quality: jpegQuality})
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
compressedSize := buf.Len()
|
compressedSize := buf.Len()
|
||||||
|
|||||||
Reference in New Issue
Block a user