From 6291d0d40029cd64a282ce5696519a3c3438a5a6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 2 Jan 2023 17:13:56 +0530 Subject: [PATCH] Code to check if an image is Opaque --- tools/utils/images/opaque.go | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tools/utils/images/opaque.go diff --git a/tools/utils/images/opaque.go b/tools/utils/images/opaque.go new file mode 100644 index 000000000..c81c7db02 --- /dev/null +++ b/tools/utils/images/opaque.go @@ -0,0 +1,40 @@ +// License: GPLv3 Copyright: 2023, Kovid Goyal, + +package images + +import ( + "fmt" + "image" +) + +var _ = fmt.Print + +func IsOpaque(img image.Image) bool { + switch img.(type) { + case *image.RGBA: + return img.(*image.RGBA).Opaque() + case *image.RGBA64: + return img.(*image.RGBA64).Opaque() + case *image.NRGBA: + return img.(*image.NRGBA).Opaque() + case *image.NRGBA64: + return img.(*image.NRGBA).Opaque() + case *image.Alpha: + return img.(*image.Alpha).Opaque() + case *image.Alpha16: + return img.(*image.Alpha16).Opaque() + case *image.Gray: + return img.(*image.Gray).Opaque() + case *image.Gray16: + return img.(*image.Gray16).Opaque() + case *image.CMYK: + return img.(*image.CMYK).Opaque() + case *image.Paletted: + return img.(*image.Paletted).Opaque() + case *image.Uniform: + return img.(*image.Uniform).Opaque() + case *NRGB: + return img.(*NRGB).Opaque() + } + return false +}