2012-03-23 4 views
2

Я пытаюсь преобразовать строку с кодировкой base64 в объект изображения, используя метод, приведенный ниже.Преобразование из Base64 String в PNG-файл

function gotFileWriter(writer) { 
    console.log('Starting gotFileWriter'); 
    writer.onwrite = function (evt) { 
     console.log("write success"); 
    }; 

    $.mobile.showPageLoadingMsg(); 
    //  console.log('height: ' + cb_canvas.height); 
    //  console.log('width: ' + cb_canvas.width); 
    Signaturebase64 = cb_canvas.toDataURL(); 

    //I need to save the base64 string to a PNG image on the Phone here. 
    writer.write(Signaturebase64); 

    $.mobile.hidePageLoadingMsg(); 
    $.mobile.changePage("#MyJob"); 
    console.log('Finished gotFileWriter'); 
} 

Линия:

Signaturebase64 = cb_canvas.toDataURL(); 

Работы, как и ожидалось, и дает мне мою base64 строку.

Теперь я хотел бы преобразовать его в файл изображения в постоянном хранилище телефона.

следующая строка запись base64 строки в хранилище, но то, что я хочу, чтобы это сделать, это сохранить его в виде PNG-файл вместо:

writer.write(filedata); 
+0

Если строка base64 является только кодированными данными изображения, просто расшифруйте ее и напишите в файл с расширением изображения. –

ответ

0

Вы не можете использовать PhoneGap FileWriter для записи двоичных данных. Вам нужно будет написать плагин для отправки данных с кодировкой base64 на родную сторону, закодировать его в двоичном формате, а затем записать его с помощью собственного кода.

+0

Спасибо за ответ. Есть ли у вас какие-либо ссылки или учебники для чего-то подобного? – Seany84

+0

Ознакомьтесь с информацией о плагинах по адресу: http://wiki.phonegap.com/w/page/36752779/PhoneGap%20Plugins также взгляните на исходный код phonegap, чтобы узнать, как мы создаем файл, и вы можете добавить код для выполнения декодирования base64 перед записью. –

+0

Спасибо Саймон, я дам вам знать, как я поработаю с этим в понедельник. – Seany84

Смежные вопросы