Intereting Posts
Html.fromHtml (String) + проблема Linebreak Контекстная загрузка из файла APK в Android Android: потоковая передача AAC + не работает с MediaPlayer (ссылки Android 4.2.2 / Shoucast) Как сделать снимок карты Google без фактического отображения карты Android Geocoder.getLocationFromName () throws IOException: служба недоступна на устройстве Проведите по удалению для пользовательского представления, а не для элемента списка. Привязать к сервису из нового контекста для изменения конфигурации или привязки из контекста приложения? Listview с arraylist, простой адаптер в android Galaxy Mega против других Phablets и Android Manifest Совместное использование ссылок Google Plus с Android Android: Чтобы установить элемент, выбранный при открытии списка ListView? Изменение размера текста элемента в режиме навигации Android – проблема с жестом салфетки Как определить использование HDMI на Samsung Galaxy S II Получить представление WIDTH с свойством match_parent?

Как 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.