2023-03-06, 14:55
Ez a kód legenerája nektek képet ASCII kódos szöveggé. Ha van rá igény, megcsinálom itt a hhw szereverén és akkor lehet használni online.
[CODE=javascript]// Betöltjük az img elemet
var img = new Image();
img.src = 'path/to/image.png';
// Várjuk meg, amíg a kép betöltődik
img.onload = function() {
// Létrehozzuk a Canvas elemet és beállítjuk a méreteket
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
// Végrehajtjuk a kép átméretezését a Canvas-ra
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
// Létrehozzuk a szöveg változót
var asciiText = '';
// Végigmegyünk a képen és minden pixelhez hozzárendelünk egy ASCII karaktert
for (var y = 0; y < img.height; y++) {
for (var x = 0; x < img.width; x++) {
// Lekérjük az adott pixel színét a Canvas-on
var pixel = ctx.getImageData(x, y, 1, 1);
var data = pixel.data;
// Számítjuk az átlagos színértéket a pixelről
var avg = (data[0] + data[1] + data[2]) / 3;
// Hozzárendeljük az ASCII karaktert az átlagos színértékhez
var asciiChar = getAsciiChar(avg);
// Hozzáadjuk a szöveghez az ASCII karaktert
asciiText += asciiChar;
}
// Hozzáadjuk a sortörést a szöveghez
asciiText += '\n';
}
// Kiírjuk a szöveget a konzolra
console.log(asciiText);
};
// Függvény, amely visszaadja az ASCII karaktert az adott színértékhez
function getAsciiChar(value) {
var asciiChars = [' ', '.', ':', '-', '=', '+', '*', '#', '%', '@'];
var step = 255 / (asciiChars.length - 1);
var index = Math.floor(value / step);
return asciiChars[index];
}
[/CODE]
Az img változóban lévő kép betöltődése után létrehozzuk a Canvas objektumot és átméretezzük a képet. Ezután végigmegyünk a képen és minden pixelhez hozzárendelünk egy ASCII karaktert az átlagos színértékek alapján. A getAsciiChar() függvény visszaadja az adott színértékhez tartozó ASCII karaktert, majd a szöveget kií
írjuk a konzolra.
Az asciiChars tömbben definiáljuk az ASCII karaktereket a legvilágosabbtól a legsötétebbig, majd kiszámítjuk az egyes karakterekhez tartozó színérték-tartományokat az alapszín alapján. Ezután az index változóba elmentjük az adott színértékhez tartozó ASCII karaktert, és hozzáadjuk a asciiText változóhoz.
Végül kiírjuk a asciiText szöveget a konzolra. Ez az eljárás ASCII-artot eredményez, amelyet könnyű másolni és beilleszteni más alkalmazásokba, mint például egy e-mail vagy közösségi média platform.
Fontos megjegyezni, hogy az eljárás hatékonysága és a generált ASCII art minősége jelentősen függ a betöltött kép méretétől és a getAsciiChar() függvényben definiált ASCII karakterek számától. Ha túl sok karaktert használunk, az ASCII art túl részletes és olvashatatlan lehet, ha pedig túl kevés karaktert használunk, az ASCII art túl általános és nem mutatja meg a kép részleteit. A kívánt hatás elérése érdekében kísérletezhetünk a karakterek számával, a színárnyalatokkal és a kontraszttal.
[CODE=javascript]// Betöltjük az img elemet
var img = new Image();
img.src = 'path/to/image.png';
// Várjuk meg, amíg a kép betöltődik
img.onload = function() {
// Létrehozzuk a Canvas elemet és beállítjuk a méreteket
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
// Végrehajtjuk a kép átméretezését a Canvas-ra
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0);
// Létrehozzuk a szöveg változót
var asciiText = '';
// Végigmegyünk a képen és minden pixelhez hozzárendelünk egy ASCII karaktert
for (var y = 0; y < img.height; y++) {
for (var x = 0; x < img.width; x++) {
// Lekérjük az adott pixel színét a Canvas-on
var pixel = ctx.getImageData(x, y, 1, 1);
var data = pixel.data;
// Számítjuk az átlagos színértéket a pixelről
var avg = (data[0] + data[1] + data[2]) / 3;
// Hozzárendeljük az ASCII karaktert az átlagos színértékhez
var asciiChar = getAsciiChar(avg);
// Hozzáadjuk a szöveghez az ASCII karaktert
asciiText += asciiChar;
}
// Hozzáadjuk a sortörést a szöveghez
asciiText += '\n';
}
// Kiírjuk a szöveget a konzolra
console.log(asciiText);
};
// Függvény, amely visszaadja az ASCII karaktert az adott színértékhez
function getAsciiChar(value) {
var asciiChars = [' ', '.', ':', '-', '=', '+', '*', '#', '%', '@'];
var step = 255 / (asciiChars.length - 1);
var index = Math.floor(value / step);
return asciiChars[index];
}
[/CODE]
Az img változóban lévő kép betöltődése után létrehozzuk a Canvas objektumot és átméretezzük a képet. Ezután végigmegyünk a képen és minden pixelhez hozzárendelünk egy ASCII karaktert az átlagos színértékek alapján. A getAsciiChar() függvény visszaadja az adott színértékhez tartozó ASCII karaktert, majd a szöveget kií
írjuk a konzolra.
Az asciiChars tömbben definiáljuk az ASCII karaktereket a legvilágosabbtól a legsötétebbig, majd kiszámítjuk az egyes karakterekhez tartozó színérték-tartományokat az alapszín alapján. Ezután az index változóba elmentjük az adott színértékhez tartozó ASCII karaktert, és hozzáadjuk a asciiText változóhoz.
Végül kiírjuk a asciiText szöveget a konzolra. Ez az eljárás ASCII-artot eredményez, amelyet könnyű másolni és beilleszteni más alkalmazásokba, mint például egy e-mail vagy közösségi média platform.
Fontos megjegyezni, hogy az eljárás hatékonysága és a generált ASCII art minősége jelentősen függ a betöltött kép méretétől és a getAsciiChar() függvényben definiált ASCII karakterek számától. Ha túl sok karaktert használunk, az ASCII art túl részletes és olvashatatlan lehet, ha pedig túl kevés karaktert használunk, az ASCII art túl általános és nem mutatja meg a kép részleteit. A kívánt hatás elérése érdekében kísérletezhetünk a karakterek számával, a színárnyalatokkal és a kontraszttal.
„Az igaz ember járta ösvényt minden oldalról körülveszi az önzők és a gonoszok igazságtalansága. Ám, aki az irgalmasság és a jóakarat nevében vezeti az erőtleneket a sötétség völgyén át, az valóban testvére és őrzője embertársainak. És lesújtok rád nagy haraggal és rettentő bosszúval mindazokra, akik testvéreim ártalmára törnek. És majd megtudod, hogy az én nevem az Úr, amikor szörnyű bosszúm lesújt rád!”
Ponyvaregény : Ezékiel 25:17
Ponyvaregény : Ezékiel 25:17








