Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как достать картинку(капча) из base64 (https://javascript.ru/forum/events/51936-kak-dostat-kartinku-kapcha-iz-base64.html)

рони 26.11.2014 12:05

eropov,
увы не понял, что вы хотите

danik.js 26.11.2014 14:19

Цитата:

Сообщение от eropov
декодировать допустим онлайн кодировщиком и помеcтить в файл

Помещать должнен онлайн кодировщик! Иначе как ты вручную "поместишь" бинарные данные в файл? Как их вообще онлайн кодировщик тебе выдаст?

danik.js 26.11.2014 14:20

Цитата:

Сообщение от eropov
Конечно программно и именно картинку

Ну значит FileSaver.js в помощь.

kostyanet 26.11.2014 16:02

Мне тоже надо сохранить картинку на жесткий диск. Очень интересует способ как это сделать скриптом, чтобы не сохранять всю пагу и потом выбирать из папки фотки. Ну типа я зашел на сайт, нажал кнопачку - бамц и все фотки с сайта в указанной папочке лежат.

Яростный Меч 27.11.2014 11:51

Цитата:

Сообщение от eropov (Сообщение 342952)
Кажется вы меня не совсем поняли, если взять содержимое src, это вроде как base64, декодировать допустим онлайн кодировщиком и помеcтить в файл в формате картинки(png, jpg) файл не открывается(битый)
А по сути мне нужно сохранить капчу на жесткий диск.

Если ты глянешь ссылку про FileSaver.js, то сразу заметишь, что в IE требуется именно Blob (в других браузерах прокатил бы сценарий создания ссылки, присвоения ей в href урла с base64, использования атрибута download и программного клика на ссылку).

Blob можно сотворить из base64 примерно так:
var base64str = img.src.substr(img.src.indexOf('base64')+7);
var strBytes = atob(base64str);
var buffer = new ArrayBuffer(strBytes.length);
var bytes = new Uint8Array(buffer);
for (var i=0; i<strBytes.length; ++i) {
     bytes[i] = strBytes.charCodeAt(i);
}
var blob = new Blob([bytes]);

Mister-Fil 28.12.2014 04:07

У содержимого из src отрезаете #data:image/jpeg;base64,# декодируете из base64(любым языком программирования) и полученное(бинарные данные) сохраняете в файл с расширением .jpg после чего можете использовать как обычное изображение

Онлайн декодер для тестирования http://www.freeformatter.com/base64-...html#ad-output


Часовой пояс GMT +3, время: 21:19.