Rolf B: Premultiplied Alpha and the 2D rendering context

Beitrag lesen

problematische Seite

Hallo Martin,

Richtig, denn $$p_\alpha$$ ist für diesen Schritt bedeutungslos.

Hm - kommt drauf an. Wenn das Zielpixel ein Video-Pixel ist, dann gibt's kein Alpha mehr, aber wenn ich zwei alpha-haltige Bitmaps mische, dann schon. Sind aber zwei verschiedene Output-Devices, insofern auch zwei verschiedene Fragestellungen, und dies:

Man müsste jetzt also noch wissen, wie $$p_\alpha$$ berücksichtigt wird

ist nur für eine davon relevant. Aber dann durchaus, denn ein Mischpixel aus zwei teiltransparenten Pixeln ist ja wieder teiltransparent.

ein premultiplied-Wert von (255,127,0,0.5) nicht non-premultiplied darstellbar ist

Man könnte es auch umgekehrt sagen: Ein pre-multiplied von (255,127,0,0.5) kann gar nicht erst entstehen

Doch, schon. Ich muss nur eine Bitmap haben, die als "premultiplied" gekennzeichnet ist und dort diesen Wert einsetzen. Das scheint mir doch der Sinn dieser ganzen Flags und Optionen in der Spec zu sein, dass man mit solchen Bitmaps Dinge tun kann, die eine non-premultiplied Bitmap nicht gehen. Wenn es eine reine Effizienzsache wäre, die keine Auswirkung auf das visuelle Ergebnis hat, bräuchte man vermutlich keine Flags im API und könnte das den Browser überlassen. Diese Meinung von dir teile ich (noch) nicht:

Ich sehe den Sinn tatsächlich nur in der Einsparung von drei Multiplikationen pro Pixel bei der Anzeige, die man dann halt einmalig vorzieht.

Danke für's Helfen beim Denken 😀

Rolf

--
sumpsi - posui - obstruxi