Como fazer o download de uma imagem pelo AngularJS

Estou criando uma funcionalidade parecida com o anexo do email, em que anexamos arquivos mas se quisermos visualizá-lo para confirmar os arquivos a serem enviados realizamos o download.

É nessa parte que estou tendo o problema

function abrirArquivo() {  var decoded = $  base64.decode(base64);  var url = window.URL.createObjectURL(new Blob([decoded], {type:"image/png"}));  var link = document.createElement('a');  link.href = url;  link.setAttribute('download', "teste");  document.body.appendChild(link);  link.click();  } 

Eu uso a função acima que pega o base64 da imagem que eu quero baixar, converte para binário e passa para o construtor do Blob, mas quando o download termina a imagem abre com erro:

inserir a descrição da imagem aqui