Intereting Posts
Android: указание одной и той же темы в styles.xml и styles-21.xml Android – только последний элемент отображается в списке слоев Масштабирование выталкиваемой внутри кнопки? Как скомпилировать и запустить приложение «Google Contacts» в Android Emulator AndroidRuntimeException: requestFeature () необходимо вызывать перед добавлением исключительного содержимого для Honeycomb 3.1 – 3.2.1 Android BroadcastReceiver, автоматический запуск службы после перезагрузки устройства Google Maps – «Приложение не будет запущено, если вы не обновите сервисы Google Play» Направление компаса отличается в зависимости от ориентации телефона Что будет делать SQLiteCursor, если столбец null? Styling AppCompatButton в v21 не имеет тени и углового радиуса нуля Могу ли я использовать совместимую панель действий И фрагмент в том же самом действии? Разрешения на создание сокетов в android Получить всех клиентов Twitter из установленных приложений Есть ли какой-либо механизм обратного вызова в android, когда есть данные, доступные для чтения в сокете Android Proguard – это лучшая практика для всех сторонних библиотек?

Как 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:, как содержимое.

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

Ну, вы можете попробовать получить его как 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.