Это невозможно в простом HTML / CSS.
Во встроенном SVG можно использовать фильтр , например feColorMatrix
, для установки всех каналов на один цвет, кроме непрозрачности.
Это было бы возможно в <canvas>
с использованием составной операции , такой как сначала рисование изображения, затем рисование одного цвета поверх в режиме source-out
.
Это может быть возможно в IE, используя MaskFilter , используя MaskFilter для генерации маскирующего цвета (например, белого), наложенного поверх фиксированного цвета (например, черного). Однако я думаю, что вы потеряете все плавные края с переменной непрозрачностью.
Будет много нюхать и раздражать браузер. Я бы постарался избежать этого.