Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Ahoj, zdravím u dalšího kola programátorské minisoutěže o placku a nálepky. Dnešní téma bude ASCII art, přesněji převod obrázku na znaky. Naprogramujte aplikaci, která si po spuštění řekne o obrázek a tento obrázek převede na znaky. Výsledek zobrazí v prohlížeči jako HTML stránku. Text můžete barvit, použít můžete libovolný programovací jazyk.

Kdysi jsem něco takového dělal (teď jsem tím převedl toho ptáka co je níže), můžete se inspirovat zde (umí to jen bmp soubory): http://www.itnetwork.cz/…zku-na-znaky

Výsledné programy vyzkoušíme na několik obrázků, autor nejlepšího výsledku získává placku a nálepky :) Kdo má kterou placku si pamatujeme, brzy se budou zobrazovat v profilech a přidají i nějaký skill :)

Hint: Používejte neproporcionální písmo, jaký znak použít (odstín) zjistíte podle toho, kolik pixelů černé tento znak na pozadí zabírá.

Soutěž končí také neděli 26.5. v 15:00.

Editováno 22.5.2013 9:12
Odpovědět 19.5.2013 16:35
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Michal Žůrek (misaz):

Když to udělám skusím udělat v javě, můžu mít placku pro javu?

Nahoru Odpovědět 19.5.2013 19:27
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 19.5.2013 20:39
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na David Čápka
Hartrik:

Můžeme používat libovolnou znakovou sadu, nebo pouze ASCII?

Editováno 19.5.2013 21:32
 
Nahoru Odpovědět  +1 19.5.2013 21:32
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Hartrik
David Čápka:

Měly by to být klasické ASCII znaky, nemusí to být na 100% ASCII sada, ale měla by se tam vyskytovat písmena, čísla a další známé znaky.

Nahoru Odpovědět 20.5.2013 9:36
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Michal Maršálek:

Pokud se může obarvovat, tak proč používat různé znaky? Použití různých znaků jako různých odstínů bych chápal, kdyby to mělo být černobílé.

 
Nahoru Odpovědět 20.5.2013 10:48
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Maršálek
David Čápka:

Jaký by mělo smysl poskládat obrázek ze stejných znaků? :) Obarvení je samozřejmě jen pro přidání na efektu, algoritmus pracuje s obrázkem jako by byl černobílý.

Nahoru Odpovědět 20.5.2013 10:51
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michal Maršálek:

Chápu, že by to nemělo smysl, ale nebylo mi jasné proč to teda tak je.

 
Nahoru Odpovědět 20.5.2013 11:11
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na David Čápka
Hartrik:

Na jak velkých obrázcích se bude testovat?
v poměru 1 pixel == 1 znak?

 
Nahoru Odpovědět 20.5.2013 18:43
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Hartrik
David Čápka:

Program by měl umět zvládnout obrázek libovolné velikosti, pouze se zadá velikost ve znacích pro výstup. Otevřu tedy obrázek v 400*300, zadám že chci velikost 40 znaků a vyleze mi 40*30 znaků.

Editováno 20.5.2013 20:33
Nahoru Odpovědět 20.5.2013 18:53
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michael Olšavský:

? Jak se to počítá? Nechtěl jsi napsat 10 znaků? Nebo jsem asi uplně mimo :D

 
Nahoru Odpovědět 20.5.2013 19:12
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michael Olšavský
David Čápka:

Chtěl jsem napsat 40, už jsem to opravil :) Jde o nejdelší hranu. Nebo si nech zadat výšku a šířku, je to jedno.

Editováno 20.5.2013 20:34
Nahoru Odpovědět 20.5.2013 20:34
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Hartrik
Redaktor
Avatar
Hartrik:

Předpokládám že soutěž končí také v neděli 26.5. v 15:00.
Jinak už to mám hotové ;)

 
Nahoru Odpovědět 21.5.2013 20:58
Avatar
Зайчик
Člen
Avatar
Nahoru Odpovědět  +1 21.5.2013 21:22
Коммунизм для нашего будущего!
Avatar
GreenMan
Redaktor
Avatar
GreenMan:

Tak môj už zvláda všetko, čo potrebuje, len sa mi nechce tvoriť UI :D Inak bude vadiť ak sem dám len PHP súbory a nedám to niekam online, niekedy to vie byť dosť náročné hlavne s veľmi veľkými obrázkami tak nechcem riskovať problémy s mojim hostingom ak by sa niekto nudil a skúšal tam obrovské obrázky :D

Nahoru Odpovědět 21.5.2013 23:29
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Hartrik
David Čápka:

Vidíš, nenapsal jsem to tam, díky :)

Nahoru Odpovědět 22.5.2013 9:12
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na GreenMan
David Čápka:

Vypadá to dobře, link mi můžeš poslat do PM, aby ti to ostatní nezasekli :P

Nahoru Odpovědět 22.5.2013 9:16
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Homo
Člen
Avatar
Odpovídá na David Čápka
Homo:

Generovani HTML je podminkou, nebo staci kdyz se to bude moct ulozit jako obrazek?

Nahoru Odpovědět  +1 22.5.2013 18:18
1010011 1000101 1011000
Avatar
Kit
Redaktor
Avatar
Odpovídá na Homo
Kit:

U tebe bych nečekal, že bys měl problémy s generováním HTML. Vždyť v Javě se generuje skoro samo.

Nahoru Odpovědět 22.5.2013 18:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Homo
Michal Žůrek (misaz):

to html je asi aby to mohlo být i barevné, protože jinak bys to mohl dát do txt.

Nahoru Odpovědět  -1 22.5.2013 18:25
Nesnáším {}, proto se jim vyhýbám.
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Hartrik:

A když to bude tisknout do obrázku tak to snad bude černobílé?

 
Nahoru Odpovědět  +1 22.5.2013 18:34
Avatar
Homo
Člen
Avatar
Odpovídá na Kit
Homo:

O to nejde, posledni dobou me prevlada lenost. Samotny konverter jsem mel hotovy za 15 minut i se zadavanim pomeru pro zmenseni, ale zatim to vypisuje do konzole a mne se zase nechce nic delat :-D

Nahoru Odpovědět 22.5.2013 18:49
1010011 1000101 1011000
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Homo
David Čápka:

Generování HTML je podmínkou, máš to to samé jako výpis do konzole, jen znaky obalíš spanem s barvou.

Nahoru Odpovědět 23.5.2013 9:01
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Homo
Člen
Avatar
Odpovídá na David Čápka
Homo:

Jasny :-) nakonec jsem zjistil ze je to jednodusi nez ukladani do obrazku kde musim resit jak velikost pisma tak i velikost obrazku.

Nahoru Odpovědět 23.5.2013 10:20
1010011 1000101 1011000
Avatar
GreenMan
Redaktor
Avatar
GreenMan:

Tak to sem už dám, aby som na to zajtra nezabudol :D https://dl.dropboxusercontent.com/…HP/ascii.zip Vie to robiť s JPG, PNG a ako tak GIF (Obrázok prerobí, len farby nepozná iné ako modré). Použil som tam Nette, pretože sa mi nechcelo robiť formulár na nahratie obrázka ručne, samotná premena obrázka do ASCII ho nepotrebuje.

Nahoru Odpovědět 25.5.2013 20:48
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
Odpovídá na GreenMan
Michael Olšavský:

Nechceš to dát na hosting? Nedávno jsem si odinstaloval Apache. Nějak mi blbnul a od té doby jsem ho nepotřeboval.

 
Nahoru Odpovědět  +1 25.5.2013 21:06
Avatar
Odpovídá na GreenMan
Michal Žůrek (misaz):

Pošli nějaký sample obrázek na kterém jsi to testoval.

Nahoru Odpovědět 25.5.2013 21:13
Nesnáším {}, proto se jim vyhýbám.
Avatar
Michal Žůrek (misaz):

Ono totiž sracovo logo vypadá asi nějak takto:

Nahoru Odpovědět 25.5.2013 21:14
Nesnáším {}, proto se jim vyhýbám.
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na Michael Olšavský
Honza Bittner:

Stáhni si UwAmp (http://www.uwamp.com/)
funguje to bez instalace a je to podle mě super ! :)

(http://prntscr.com/16mrm1)

Nahoru Odpovědět  +1 25.5.2013 21:14
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
GreenMan
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
GreenMan:

To je tým, ako si nastavíš to číslo pri uploade. Na malé obrázky je lepšie malé, pretože ak má obrázok 52x64px a ty si nastavíš že 1 znak zbere 10x10px tak ti vznikne niečo dosť divné, takto sdraco vypadá pri nastavení na 1.

Nahoru Odpovědět 25.5.2013 21:30
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
Michal Žůrek (misaz):

I zde přidávám svůj výtvor.

http://uloz.to/…my-misaz-zip

Aplikace se hodí na obrázky jako máte ty angry birds v avatarech. Fotka nebude převedana úplně dokonale. Aplikace umožňuje nastavit velikost výsledku. Aplikace je naprosto jednoduchá, avšak se říká že v jednoduchosti je síla.

Nahoru Odpovědět 26.5.2013 11:58
Nesnáším {}, proto se jim vyhýbám.
Avatar
Hartrik
Redaktor
Avatar
Hartrik:

Moje aplikace:
http://db.tt/iPQWSdNa

Přibaleno několik ukázek.
U barevných obrázků se snažte, aby se na šířku vešel do okna prohlížeče.

 
Nahoru Odpovědět 26.5.2013 14:49
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Hned jdu na hodnocení, jen trochu rozmrznu :)

Nahoru Odpovědět 26.5.2013 15:22
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

Vaše aplikace jsem nechal zpracovat ten samý obrázek a porovnal výsledky. Díval jsem se i na zdrojový kód, ale ten máte všichni 3 perfektní.

  1. Greenman (100 bodů)
    • Velmi pěkná realizace, u fontu bych jen vypnul antialiasing, aby byl výsledek přesnější. Bylo by vhodné zahrnout poměr stran znaků ve fontu do poměru stran výsledného obrázku, aby byl opticky stejný, jako předloha.
  2. Hartrik (100 bodů)
    • Zajímavý model dědičnosti, vypnul jsi antialising při tvorbě palety, zaregistroval jsem i řešení průhledných pixelů, pěkný kód, poměr stran řešíš snížením výšky řádku, lepší by bylo upravit aplikaci tak, aby byla výška řádku standardní a tak výška obrázku o něco nižší. Placku získáváš také, nedokáži hodnotit dobře napsanou aplikací v Javě a dobře napsanou aplikací v PHP.
  3. Misaz (85 bodů)
    • Velmi hezky napsaná aplikace, jsi mistr jazyků, už jsi tu programoval snad úplně ve všem. Bohužel jsi úplně bojkotoval výběr znaků na základě prostoru, který znak na pozadí zabírá. Vybíráš jen náhodně z několika znaků, např. bílou ti to určí jako H. Znak H určitě zabírá nějaký prostor, bude to tedy třeba 30% odstín, ne 0%.

Placky posíláme Hartrikovi a GreenManovi. Předpokládám, že GreenMan chce slona, Hartrik chce jakou?

Pro srovnání dávám výstupy vašich programů a originál do přílohy (originál, GreenMan, Hartrik, Misaz). Jako velmi zajímavé se zdá určení barvy pozadí, u GreenMana vypadají ty hory dole velmi pěkně na černém pozadí, obloha je pak hezčí zas u Hartrika. Mohlo by být zajímavé vymyslet algoritmus, co by dopočítával barvu pozadí, aby výsledek vypadal co nejlépe. Také mě napadá, že by se s takovou grafikou dala krásně udělat nějaká textovka v konzoli :)

EDIT: Teď mi vlastně došlo, že GreenMan by měl mít tu paletu otočenou, jelikož na černém pozadí by měly být světlé znaky větší a tmavé menší. Možná bys to ještě mohl zkusit převrátit, jak by to vypadalo, docela by mě to zajímalo. :)

Editováno 26.5.2013 16:51
Nahoru Odpovědět  +3 26.5.2013 16:47
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na David Čápka
Hartrik:

Díky za hodnocení :) a gratuluji GreenManovi

Vzal bych si Java placku ;)

 
Nahoru Odpovědět 26.5.2013 17:00
Avatar
GreenMan
Redaktor
Avatar
Odpovídá na David Čápka
GreenMan:

Ďakujem za peknú súťaž a gratulujem ostatným, že zvládli svoj výtvor dokončiť a ak sa im páči umiestnenie tak aj k tomu. Áno, samozrejme chcem slona, už sa mi o ňom aj snívalo :D Skúsil som zmeniť to pozadie na biele, ale na tom čiernom to má podľa mňa také svoje kúzlo a už to nie je tak pekné.

Nahoru Odpovědět 26.5.2013 17:02
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na GreenMan
David Čápka:

Nene, já myslel nechat černé pozadí, ale reverznout to pole s paletou znaků :P

Nahoru Odpovědět 26.5.2013 17:05
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
GreenMan
Redaktor
Avatar
Odpovídá na David Čápka
GreenMan:

Ahá, no ja som bol vždy pomalší v chápaní :D

Nahoru Odpovědět 26.5.2013 17:28
Zelená zostane zelenou, aj keď na ňu vyleješ modrú. - Satik64
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na GreenMan
David Čápka:

Jo, tohle je lepší, dole tmavé, nahoře světlé, díky :)

Nahoru Odpovědět 26.5.2013 17:29
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Hartrik
Redaktor
Avatar
Odpovídá na David Čápka
Hartrik:

Ty řádky jsem snížil, protože mi mezery mezi nimi připadaly moc velké.

 
Nahoru Odpovědět 26.5.2013 17:33
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 26.5.2013 17:34
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Hartrik
Redaktor
Avatar
Hartrik:

Asi jo...

  • 70%
 
Nahoru Odpovědět  +1 26.5.2013 17:38
Avatar
Michal Žůrek (misaz):

To moje funguje tak že se zaokrouhlené barvě přiřadí znak a ten se za ní vždy dosadí.

To nejsou nádně vybraná písmena, to jsou znaky, které mají stejnou šířku jako výšku.

Nahoru Odpovědět 27.5.2013 14:48
Nesnáším {}, proto se jim vyhýbám.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Michal Žůrek (misaz)
David Čápka:

Já vím, jak to funguje, ale barva se přiřazuje náhodně.

Nahoru Odpovědět 27.5.2013 14:52
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Odpovídá na David Čápka
Michal Žůrek (misaz):

myslíš znak :)

Ano přiřazuje se náhodně.

Nahoru Odpovědět 27.5.2013 14:54
Nesnáším {}, proto se jim vyhýbám.
Avatar
Štefan Pružinský:

Rozhodol som sa urobiť si tohto Machra. Program pracuje taktiež s počtom pixelov čiernej v znaku, s transparentnosťou atď. Vytváranie obrázka je trochu pomalšie nakoľko si to zoraďuje znaky podľa počtu pix. čiernej pri každom vygenerovaní obrázka.

Zdrojáky: https://www.dropbox.com/…xrwS2ysz5i5a?dl=0
.exe: https://www.dropbox.com/…eToASCII.exe?dl=0

Editováno 19.3.2015 16:43
Nahoru Odpovědět  +1 19.3.2015 16:42
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Štefan Pružinský:

Ocenil by som krátke zhodnotenie...

Nahoru Odpovědět 19.3.2015 19:05
Najefektívnejším spôsobom debuggingu je modlitba. :)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 47 zpráv z 47.