Intereting Posts
Как удалить надутое меню / элементы с новой панели инструментов Lollipop? Есть ли какой-либо механизм обратного вызова в android, когда есть данные, доступные для чтения в сокете Android – Как получить позицию в bindView, как в getView? Приложение для отправки команды hdmi cec Ошибка выполнения – java.lang.IllegalArgumentException: provider = gps Проблемы с Android Soundpool Как вы можете отображать перевернутый текст с текстовым просмотром в Android? Как отправить электронную почту со ссылкой на приложение для Android Ошибка Eclipse DDMS «Невозможно связать с локальным 8600 для отладчика» Нельзя использовать выпрямитель для андроида? Почему холст не такой же размер, как вид в onDraw? (Android) RecyclerView – анимация изменения столбцов менеджера компоновки сетки Ресурс не найден при использовании стиля Theme.Sherlock Phonegap: можно ли обнаружить swipeLeft и SwipeRight touch от Javascript? Не удается прочитать свойство «getPicture» неопределенной ионной камеры

Как base64 кодировать изображение в javascript

Я разрабатываю приложение phonegap и использую метод navigator.getPicture для получения изображений.

Как я получаю картину:

 navigator.camera.getPicture(onSuccess, onFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI }); function onSuccess(imageURI) { var image = document.getElementById('myImage'); image.src = imageURI; } 

Точно так же, как пример в док-станции для телефонных разговоров.

Я хочу иметь возможность использовать imageURI, а затем преобразовать его в данные изображения, чтобы загрузить его позже. (Я не хочу использовать FileTransfer Phonegap)

До сих пор я пробовал как получать данные изображения в JavaScript? И как вы можете кодировать строку в Base64 в JavaScript?

Когда я попробую следующее,

 function onSuccess(imageURI) { getBase64Image(imageURI); } function getBase64Image(img) { // Create an empty canvas element var canvas = document.createElement("canvas"); canvas.width = img.width; canvas.height = img.height; // Copy the image contents to the canvas var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0); // Get the data-URL formatted image // Firefox supports PNG and JPEG. You could check img.src to // guess the original format, but be aware the using "image/jpg" // will re-encode the image. var dataURL = canvas.toDataURL("image/png"); console.log(dataURL); //here is where I get 'data:,' return dataURL.replace(/^data:image\/(png|jpg);base64,/, ""); } 

И распечатайте dataURL перед возвратом. Я просто получаю data:, как содержимое.

Любые идеи о том, что я делаю неправильно?

Solutions Collecting From Web of "Как base64 кодировать изображение в javascript"

Ну, вы можете попробовать получить его как DATA_URL. Ваш пробег может измениться, поскольку вы можете столкнуться с ошибкой из памяти, когда изображение преобразуется в строку Base64.

 navigator.camera.getPicture(onSuccess, onFail, { quality: 50, destinationType: Camera.DestinationType.DATA_URL }); function onSuccess(imageURI) { var image = document.getElementById('myImage'); image.src = imageURI; } 

В качестве альтернативы вы можете использовать FileReader.readAsDataURL () .

Метод canvas.toDataURL не реализован в более ранних версиях Android.