Try the following starting from emacs -Q + the attached .png file: 1. (let ((ov (make-overlay 1 10))) (set-frame-parameter nil 'alpha-background 90) (overlay-put ov 'display (create-image "/path/to/image.png" nil nil :width 100))) 2. Observe image background not being transparent, but instead using default face background. 3. (let ((ov (make-overlay 1 10))) (set-frame-parameter nil 'alpha-background 90) (overlay-put ov 'display (create-image "/path/to/image.png" nil nil :width 100 :mask 'heuristic))) 4. With :mask 'heuristic, the background becomes transparent (mod "rough" edges due to clipping) I believe that (1) is a bug. See also https://list.orgmode.org/orgmode/7324dc0.f8517.195a224ffd1.Coremail.dybfysiat@163.com/