blend_mode — GFX2D composite op

• Data kinds: rgb × rgb → rgb

• Call: import fullseye as fs; fs.ledger.blend_mode(base, top, mode='normal', opacity=1.0) (implementation को सीधे call करना हो तो import gfx2d; gfx2d.blend_mode(base, top, mode='normal', opacity=1.0), registry से लेना हो तो opsgfx2d.get("blend_mode"))

उपयोग

2 opaque rgb image को नामित mode से blend करता है (W3C Level 1)।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

With an opaque backdrop the specification reduces to a lerp, Co = (1 - opacity)*Cb + opacity*B(Cb, Cs), so opacity=0 returns the backdrop exactly and mode="normal", opacity=1 returns the source exactly. Both identities are checked bit-for-bit in the test suite.

Named blend_mode and not blend because imagemorph.blend already owns that name for a two-image cross-fade; two functions called blend with different signatures is exactly the kind of collision this library's naming test exists to prevent.

Raises ValueError: unknown mode, mismatched shapes, opacity outside [0, 1], values outside [0, 1].

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• genspark_external_review — py -3.11 examples/genspark_external_review.py

• gfx2d_scene — py -3.11 examples/gfx2d_scene.py

वे अगले ops जिनसे type जुड़ता है (rgb को input के रूप में लेते हैं)

srgb_to_linear · linear_to_srgb · light_mask · normal_map_decode · bloom · vignette · chromatic_aberration · film_grain

इसी category के (composite)

premultiply · unpremultiply · alpha_composite · alpha_composite_premul · layer_stack


*Provenance: gfx2d.py — GFX2D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.