Разобрался с альфа смешиванием. Долго не мог найти нужную формулу. В рунете встречается формула только для непрозрачного фона, а мне надо как в графических редакторах, чтоб можно было объединить несколько полупрозрачных слоев. Формулу нашел в английской вике.
Так как в МТ максимальное значение альфа равно 255, из 1 нужно вычитать аа/255.
a - верхний слой, b - нижний слой.
Теперь о ENUM_COLOR_FORMAT.
Представление цвета с альфа каналом бывает двух видов: straight и premultiplied.
Для straight нужно использовать COLOR_FORMAT_ARGB_NORMALIZE и формулы для С0 и а0.
Для premultiplied используем COLOR_FORMAT_ARGB_RAW и формулы для с0 и а0. В режиме premultiplied предполагается, что значение цвета умножено на альфу. Например, имеется straight (обычное) ARGB(51,125,190,60), для преобразования в premultiplied домножаем значения цветов на 0.2 (51/255), получим ARGB(51,25,38,12).
COLOR_FORMAT_ARGB_NORMALIZE в 2 раза медленнее COLOR_FORMAT_ARGB_RAW. Время создания ресурса зависит от размера изображения. ObjCCanvas.Erase() в 10 раз быстрее ObjCCanvas.Update().