Я поставил эту демонстрацию из MDN, https://developer.mozilla.org/ Samples/canvas-tutorial/6source-incanvas_composite.html в jsFiddle и сделал цвета прозрачными на 50%. http://jsfiddle.net/eGAvb/
Теперь, согласно Apple, source-in должен «отображать исходное изображение везде, где исходное изображение и целевое изображение непрозрачны. Отображать смешение везде, где источник и место назначения полупрозрачны. Отображать прозрачность везде, где либо источник, либо место назначения прозрачны».
Таким образом, вы можете увидеть проблему, когда посмотрите на то, как она отображается. Очень светло-розовый, совсем не фиолетовый. Пожалуйста, может кто-нибудь объяснить, почему здесь не смешано ни одного синего цвета с квадрата? Почему на самом деле стало светлее?
ДОПОЛНЕНИЕ: Я только что заметил, куда более поразительный очевидный пример. xor явно показывает фиолетовый цвет, когда, согласно официальной спецификации: «исключающее ИЛИ исходного изображения и целевого изображения», он ничего не должен показывать! Нигде не упоминается, что непрозрачность должна влиять на эти правила.