Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как создать IMG из base64-строки? (https://javascript.ru/forum/misc/71257-kak-sozdat-img-iz-base64-stroki.html)

rsaburov 06.11.2017 03:30

а на JS никак нельзя?
И если для 1-го, то разве нельзя прикрутить там список адресов обрабатываемых файлов?

laimas 06.11.2017 05:34

Цитата:

Сообщение от rsaburov
а на JS никак нельзя?

Можно, но в рамках веб страницы ему многое не позволительно.

rsaburov 06.11.2017 13:21

ну и как бы это выглядело на VBS?

laimas 06.11.2017 13:32

Цитата:

Сообщение от rsaburov
ну и как бы это выглядело на VBS?

Да точно также как и на JS (но только выполняемого не из под веб страницы), разница только в синтаксисе. Что VBS, что JS, например исполняемый в HTA (а это та же html-страница с небольшим добавлением в хидере и расширением .hta) могут использовать ActiveX компоненты системы, а это доступ к файловой системе, базе данных, реестру, работа с COM и т.д.

rsaburov 06.11.2017 14:40

Спасибо за мысль.
Было бы интересно услышать ответ содержащий собственно код, надеюсь что такой участник все же найдется, хотя понятно, что "а кому сейчас легко" ....

laimas 06.11.2017 14:58

Цитата:

Сообщение от rsaburov
услышать ответ содержащий собственно код

Для кода нужны условия (ТЗ), и готовое вряд ли кто станет выкладывать, это уже работа за ...

rsaburov 06.11.2017 15:42

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

rsaburov 06.11.2017 15:48

Вот кстати у меня есть код преобразователя графики в base64 - может быть его можно как-то развернуть в обратном направлении ...
Цитата:

<html><head>
<script>
function encodeImageFileAsURL(){
var filesSelected = document.getElementById("inputFileToLoad").files;
if (filesSelected.length > 0)
{
var fileToLoad = filesSelected[0];
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
var srcData = fileLoadedEvent.target.result; // <--- data: base64
var newImage = document.createElement('img');
newImage.src = srcData;
document.getElementById("imgTest").innerHTML = newImage.outerHTML;
document.write("<h3>Кликните по тексту в форме для выделения</h3><br><textarea cols=50 rows=30 onclick='this.select()'>"+document.getElementById( 'imgTest').innerHTML+"</textarea>");
}
fileReader.readAsDataURL(fileToLoad);
}}
</script>
</head><body>
<input id="inputFileToLoad" type="file" onchange="encodeImageFileAsURL();" />
<div id="imgTest"></div>
<form id="form1"></form>
</body></html>

laimas 06.11.2017 16:22

Цитата:

Сообщение от rsaburov
ну есть же и альтуисты

Ждите, может и найдется.

Цитата:

Сообщение от rsaburov
Мне бы хватило примера с единственным файлом произвольного наименования в произвольной папке

Файл может содержать несколько изображений? Если да, то их надо как-то связать со списком наименований файлов. То есть, если уж делать, что требуется не один раз, а структура папок не постоянна, значит нужно делать - указать каталог, задать условия, связать со списком и т.д., щелкнуть Go, и все будет выполнено.

Ссылки же на конвертацию вам давали, но этого не достаточно, если не хотите ручками ковыряться. Иначе есть готовый софт конвертирования и сохранения из base64 в изображения. Используйте его, а файлы правьте вручную, сдался вам тогда JS.

Alexandroppolus 06.11.2017 17:09

rsaburov,

я же тебе всё расписал в пятом посте этого топика, что именно надо сделать. Там элементарные вещи (да, кстати, под такое дело в Node есть синхронные аналоги функций работы с файлами, потому ничего трудного). Ты вообще программировать умеешь? хотя бы немного?

Задача 100% не браузерная. Браузер не сможет просто взять и обойти некую указанную папку, и там что-то поделать.

Если это ситуация, которая возникает периодически, то надо просто иметь скрипт под рукой, которым решать проблему.


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