Преобразование изображения в base64 с угловой библиотекой

0

У меня есть проблема с преобразованием изображения в base64 с базой 64 библиотеки angularjs.

см. мою функцию:

var img = new Image();
img.src = conf.storeUrl + '/' +$scope.fRoot.name + $scope.getFileWay() + value.name;
var base64Img = base64.encode(img);

url изображения хорош, и изображение было создано, но base64Img пуст... я не понимаю, почему.... У кого-то есть идея?

заранее спасибо

Теги:
base64

1 ответ

1

Попробуй это:

/**
 * Convert image 
 * to a base64 data uri
 * @param  {String}   url         
 * @param  {Function} callback    
 * @param  {String}   [outputFormat=image/png]           
 */
function convertImageToDataURI(url, callback, outputFormat) {
    var img = new Image();
    img.crossOrigin = 'Anonymous';
    img.onload = function(){
        var canvas = document.createElement('CANVAS'),
        ctx = canvas.getContext('2d'), dataURL;
        canvas.height = this.height;
        canvas.width = this.width;
        ctx.drawImage(this, 0, 0);
        dataURL = canvas.toDataURL(outputFormat);
        callback(dataURL);
        canvas = null; 
    };
    img.src = url;
}

Применение

convertImageToDataURI('ImageLink', function(base64Decoded){
    // Base64DataURI
});

Поддерживаемые форматы ввода

image/png, image/jpeg, image/jpg, image/gif, image/bmp, image/tiff, image/x-icon, image/svg+xml, image/webp, image/xxx
Supported output formats

image/png,image/jpeg,image/webp (chrome)

Демо - версия:

играть на скрипке

Тест: тип mime toDataUrl

http://kangax.github.io/jstests/toDataUrl_mime_type_test/

Поддержка браузера (пока я знаю)

Изображения из локальной файловой системы

Если вы хотите конвертировать изображения из файловой системы пользователей, вам нужно использовать другой подход. Используйте API FileReader (ознакомьтесь с этой скриптой).

  • 0
    я тестирую это решение, но событие onload не работает, когда я устанавливаю атрибут src ....
  • 0
    Но я попробую с fileReader и обратно
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню