Web Developers & Web Standards don't understand color theory.
As such, there isn't a physically correct workflow to filter & composite (blend) .png ImageBitmaps on the web.
Either filtering, blending or premultiplied-alpha occurs in sRGB, leading to physically incorret output.
If you want physically correct filtering+blending, you need to generate png bitmap manually, decode sRGB & premultiply alpha youself.

sRGB(255, 0, 0, 255)

linear-rgb(1, 0, 0, 1)

sRGB(0, 186, 0, 64)

linear-rgb(0, .5, 0, .25)

HTMLImageElement - default visualization.
Filtering, Blending & PremultipliedAlpha in sRGB

Bitmap - load bitmap from file, premultiply alpha on WebGPU texture upload (wrong - premultiplied-alpha in sRGB).
Texture format "unorm-srgb" to decode before filtering.
PremultipliedAlpha in sRGB

Bitmap - load bitmap from file, don't premultiply alpha before WebGPU texture upload.
Texture format "unorm-srgb" to decode before filtering.
No premultipliedAlpha applied - leads to incorrect compositing during filtering.

Manually decode .PNG file - decode sRGB encoded png data to linear-srgb (use bigger precision)
PremultiplyAlpha (associative alpha) data array before uploading to "rgba32float" WebGPU texture.
Filtering, Blending & PremultipliedAlpha in linear-rgb

Shader - Filtering & Blending & PremultipliedAlpha in linear-rgb