Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 15.01.2018, 18:16
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

<center><p><h2>СОХРАНЕНИЕ ТЕКСТА В ФАЙЛЕ PNG.</h2></p></center>

<input type="text"   id="b"  style='position: absolute; background:#faf; top:60px; left:270px; width:800px; ' >
<div id='сод' style='position: absolute; background:#fdd; padding: 10px; word-break: break-all; overflow-y: scroll; font-size: 18px; top:110px; left:270px; width:800px; height:500px;'></div>
<div style='position: absolute; text-align: center;  font-size: 18px;background:#ccf; top:110px; left:10px; width:250px; height:500px;'>
<img id='ш' src='./r1.png' />
<canvas id='прячу' width="100" height="100"></canvas><br><br>
<div id='инф'>0</div><br>
<input type="button"   value="очистиь" onclick="и.прячу.width=и.прячу.width; и.сод.innerHTML='';
и.b.value=''; и.b.focus();">
<input type="button"   value="запомнить" onclick="тор(); "><br><br>
<input type="button"   value="посмотреть" onclick="дешифратор(); "><br><br>
<input type="button" value="обновить" onclick="location.reload(); "><br>
После загрузки этой страницы нажмите <b>обновить</b> затем кнопку <b>посмотреть</b>
</div>

<script>
var и=document.all;
var номер=0;
var знак=[];
var текст=и.прячу.getContext('2d');
 текст.drawImage((и.ш),0,0,100,100);
  var imgd = текст.getImageData(0, 0, 100, 100);
 pix = imgd.data;
var буквы = [' ','ё',"й","ц","у","к","е","н","г","ш","щ","з","х","ъ","ф","ы","в","а","п","р","о","л","д","ж","э","я","ч","с","м","и","т","ь","б","ю",'1','2','3','4','5','6','7','8','9','0','-','+','=',";","'",'#','№','%','&','?','*','(',')','{','}','<','>','|','/',':','_',',','.','"','Ё','Й','Ц','У','К','Е','Н','Г','Ш','Щ','З','Х','Ъ','Ф','Ы','В','А','П','Р','О','Л','Д','Ж','Э','Я','Ч','С','','М','И','Т','Ь','Б','Ю','Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M',"q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m"];
var знач=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,70,71,72,73,74,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162];
var k=0; и.b.focus();
 function тор(e){
 var t=и.b.value; 
и.инф.innerHTML='length = '+t.length;
 var d=t.length;
 for(n=0,m=40000;n<m; n+=4){pix[n+3]=255; pix[n+1]=255; pix[n+2]=0; pix[n]=0;}
 var u=0;
for(na=0,ma=40000;na<ma;na++){ 
k++; if(k==1){k=0; na+=3;}
for(no=0,mo=162;no<mo;no++){if(t.charAt(u)==буквы[no]){pix[na]=знач[no]; break;}
if(t.charAt(u)=='['){pix[na]=200;} 
  if(t.charAt(u)==']'){pix[na]=199;}
 if(t.charAt(u)=='_'){pix[na]=197;}
 }
текст.putImageData(imgd, 0, 0);
u++; if(u>d){break;}
}
}
 function дешифратор(){
for(n=0, m=40000; n<m; n++){
for(na=0, ma=162; na<ma; na++){
if(pix[n]==знач[na]){и.сод.innerHTML+=буквы[na];}	
  }
if(pix[n]==200){и.сод.innerHTML+='['; }
if(pix[n]==199){и.сод.innerHTML+=']'; }
if(pix[n]==197){и.сод.innerHTML+='_'; }
}
var t=и.сод.innerHTML; 
и.инф.innerHTML='length = '+t.length;
}
</script>
Ответить с цитированием
  #12 (permalink)  
Старый 15.01.2018, 18:37
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

clecar,
Сообщение от clecar
но на Джерри, я вряд ли буду переходить, библиотеку не подключал и не буду.
Что такое Джерри? Какая библиотека? Этот код работает без дополнительных библиотек.
Сообщение от clecar
стабильно работает с сервером во всех имеющихся у меня браузерах. А браузеры на базе Хром требуют URL BASE 64 поэтому без сервера не работает.
Программу по вашей ссылке я открывал именно в Хроме - работает и ничего не просит.
Сообщение от clecar
Без библиотеки вероятно теряется imgd.data
Какой библиотеки? Это массив объекта HTML-элемента canvas, полученного с помощью getImageData.
Ответить с цитированием
  #13 (permalink)  
Старый 16.01.2018, 00:29
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Да спасибо разобрался, извините перепутал query с jQuery
Однако у меня этот пример не работает не работает. Хотел посмотреть а будет ли мой код здесь работать, но забыл как запускать.

Да но и копия тоже не работает. Если у Вас действительно работает наберите просто текст поместите
в картинку и покажите. В вашем примере осталась моя картинка. Очистите и напишите просто ПРИВЕТ.

Последний раз редактировалось clecar, 16.01.2018 в 00:32.
Ответить с цитированием
  #14 (permalink)  
Старый 16.01.2018, 07:12
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Пользы от такого кода пока нет. Сколько не бился над ним, ерунда.
Да он считывает информацию из рисунка, но с canvas не работает.
Пробовал подключить внешний скрипт, и имея информацию записывать там.
Этот код обращается к внешнему файлу только один раз при загрузке, когда информации ещё нет.
Ответить с цитированием
  #15 (permalink)  
Старый 16.01.2018, 09:39
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

УРА! Уже почти сдался а оказалось то совсем просто,
<div id = "source" ></div> Вы зачем то весь html текст взяли в этот контейнер
да ещё и none, чтоб подольше голову ломал и не всё перевели с моего 'и',
правда пришлось ещё функцию
onload=function(){ grek();}
	var текст = document.querySelector("#прячу").getContext('2d');
	function grek(){
	document.querySelector("#b").focus();
	document.querySelector("#b").value='';
	(document.querySelector("#прячу")).width=(document.querySelector("#прячу")).width;
	document.querySelector("#сод").innerHTML='';
	}
Большое спасибо здорово.
Ответить с цитированием
  #16 (permalink)  
Старый 16.01.2018, 10:29
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

clecar,
Сообщение от clecar
<div id = "source" ></div> Вы зачем то весь html текст взяли в этот контейнер
Дело в том, что я пытался сделать на форуме более-менее работающий пример, но оттуда нет доступа к вашему файлу r1.png - поэтому исходный текст поместил в скрытый контейнер.
Кроме того, из-за особенностей размещения кода на форуме пришлось убрать var и=document.all;
а также, вместо обращения к элементу по id, добавить поиск элемента по id document.querySelector("#id")
Ответить с цитированием
  #17 (permalink)  
Старый 16.01.2018, 10:35
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

Понятно я виноват, исходный текст в общем то и не нужен. Не объяснил толком.
Ответить с цитированием
  #18 (permalink)  
Старый 19.01.2018, 07:27
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

&gt; &lt; мне то и надо было просто поменять это на соответственно ><
А ещё проще дешифрировать не в div а в input type="text"; И нет проблем. Странно в поисковике так и не встретил ничего об этом.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как работает данный код Victor031 Общие вопросы Javascript 4 10.02.2015 08:12
Как подгрузить код JS динамически? zhurchik Общие вопросы Javascript 22 02.02.2015 14:16
Как вызвать свою функцию из «чужого» кода в Java Script, не переписывая «чужой» код? korobochkin Библиотеки/Тулкиты/Фреймворки 2 19.07.2014 16:17
Как правильно прописать свой код в .js Всеми_Любимый Элементы интерфейса 6 23.02.2010 21:34
Вопрос как сделать эту панельку Определённых размеров и свойств. jei jQuery 3 09.06.2009 19:14