From 7c2317d3018aa9078a03574c2c9603dbf409c5c0 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 2 Jan 2023 22:07:41 +0530 Subject: [PATCH] Fix divide by zero --- tools/utils/images/to_rgb.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/utils/images/to_rgb.go b/tools/utils/images/to_rgb.go index 3a12eaf16..3a88542ce 100644 --- a/tools/utils/images/to_rgb.go +++ b/tools/utils/images/to_rgb.go @@ -169,8 +169,13 @@ func newScannerRGB(img image.Image, opaque_base NRGBColor) *scanner_rgb { d := make([]uint8, 3) for i := 0; i < len(img.Palette); i++ { r, g, b, a := img.Palette[i].RGBA() - blend(d, s.opaque_base, uint8((r*0xffff/a)>>8), uint8((g*0xffff/a)>>8), uint8((b*0xffff/a)>>8), uint8(a>>8)) - s.palette[i] = NRGBColor{d[0], d[1], d[2]} + switch a { + case 0: + s.palette[i] = opaque_base + default: + blend(d, s.opaque_base, uint8((r*0xffff/a)>>8), uint8((g*0xffff/a)>>8), uint8((b*0xffff/a)>>8), uint8(a>>8)) + s.palette[i] = NRGBColor{d[0], d[1], d[2]} + } } } return s