Inks, Transparency: Mac vs Windows.

Scott Rossi scott at tactilemedia.com
Sat May 6 04:16:36 EDT 2006


Recently, Richmond Mathewson wrote:

> I found this in the Metacard 2.5 documentation stack:

> [ stuff about inks snipped ]

> It just took a tiny, tiny bit of "oomf" to go and find it . . .

I'm not sure how reading the documentation takes "oomf" but the MC 2.5 info
is now somewhat out of date with regard to the Rev 2.7 engine.

>From the Rev 2.7 What's New doc:

Object-level Blend Modes
~~~~~~~~~~~~~~~~~~~~~~~~

The 'ink' property has been extended to be valid for all non-stack objects.
Inks will now work uniformly across all platforms and they have been
augmented with structural and imaging blend modes. The full list is now:

  - Bitwise:
      clear
      noop
      notSrcAnd
      notSrcAndReverse
      notSrcCopy
      notSrcOr
      notSrcOrReverse
      notSrcXor
      reverse
      set
      srcAnd
      srcAndReverse
      srcCopy
      srcOr
      srcOrReverse
      srcXor

      srcBic (equivalent to srcAndReverse)
      notSrcBic (equivalent to srcAnd)

  - Arithmetic:
      blend
      addPin
      addOver
      subPin
      transparent
      adMin
      addMax

  - Structural Blends (Ported-Duff operators):
      blendClear
      blendSrc
      blendDst
      blendSrcOver
      blendDstOver
      blendSrcIn
      blendDstIn
      blendSrcOut
      blendDstOut
      blendSrcAtop
      blendDstAtop
      blendXor

  - Image Processing Blends
      blendPlus
      blendMultiply
      blendScreen
      blendOverlay
      blendDarken
      blendLighten
      blendDodge
      blendBurn
      blendHardLight
      blendSoftLight
      blendDifference
      blendExclusion

Although not traditionally applicable to alpha-enabled rendering, the
bitwise and arithmetic operators have been extended in the natural way to
the presence of an alpha channel by applying the operation to the
'overlapping region' of the source and destination pixels.

NB. The ink and opacity are completely independent - unlike the previous
implementation of blendlevel for images.

NB. Most of the structural blend modes require that an ancestor of the
object have an alpha channel - if this is not the case for a particular
object, it will be blended using the blendSrcOver operator. (Practically,
this means that any object with such a blend mode needs to have a container
as an ancestor that is acting as a transparency group - see later).

Important: In previous engine versions, an image with its blendlevel set
would have its ink implicitly set to 'blend'. This is no longer necessary
nor desirable with the new properties and this behavior has been removed. In
addition, upon importing, any image objects with an ink of 'blend' will have
this adjusted to blendSrcOver.

General Advice: The bitwise and arithmetic inks are still supported and
indeed have been extended to work with alpha channels, however the main
motivation for this is to allow easy evolution of existing applications to
use the 'blend*' collection of inks which in many cases are more powerful
and offer better effects.

NB. The image processing blends are the same as those defined for SVG 1.2.



Regards,

Scott Rossi
Creative Director
Tactile Media, Multimedia & Design
-----
E: scott at tactilemedia.com
W: http://www.tactilemedia.com




More information about the use-livecode mailing list