Csodaképet fest a magyar program

2014.03.06. 15:22

Egy kóderversenyre készült program olyan képeket generál, amelyek minden egyes képpontja más színű, a végeredmény mégis tetszetős.

Egy olcsóbb otthoni monitor nem is alkalmas arra, hogy teljes minőségében megjelenítse azt a képet, amelyet egy magyar programozó, Fejes József algoritmusa generál. Fejes a StackExchange nevű fejlesztői közösségi oldal versenyén aratott győzelmet egy hétvége alatt elkészített programjával. A kitűzött feladat az volt, hogy a nevezők szoftverje generáljon egy olyan képet, amelynek minden egyes pixelje más színű, de a kép mégsem színes pöttyök végtelen halmaza, hanem attraktív benyomást kelt.

Az Origónak a magyar programozó elmondta, hogy civilben üzleti informatikai alkalmazásokat fejleszt, egyáltalán nem foglalkozik grafikai alkalmazásokkal, csupán a kihívás kedvéért írta meg a programot, amely összesen 16,7 millió darab különböző színt helyez el a generált kép pixeljeiben. A magyar programozó győzelméről a New Scientist című tudományos lap is beszámolt.

Pontról pontra generálja a képeket a programkódForrás: Fejes József

Fejes József elmondta, hogy egy péntek este ült le a számítógépéhez megoldani a feladatot, az algoritmus első verzióját pedig már húszperces munkával elkészítette. Már ezzel is látványos digitális képeket lehetett előállítani, ám a működés finomhangolása végül vasárnap estig tartott. Az algoritmus első verziójával legenerált kép még leginkább egy robbanásra hasonlított, a továbbfejlesztett kóddal azonban már nagyon tarka virághoz, szivárványszínű füsthöz hasonlít a végeredmény.

A magyar programozó algoritmusa a kép előállításának elején mindig elhelyez egy véletlenszerűen kiválasztott színt, majd a jelenlegi számítógépek és megjelenítők által maximálisan kezelt 24 bites RGB színpaletta 16,7 milliós színárnyalatából illeszt hozzá egy következőt. Az algoritmus mindig úgy helyezi el a képpontokat, hogy azok a lehető legjobban illeszkedjenek vizuálisan a már elhelyezettekhez – magyarázta az Origónak Fejes.

Ezen a képen nincs két egyforma képpontForrás: Fejes József

Az algoritmus működését egy látványos videón is meg lehet szemlélni. Az 4096 x 4096 pixeles óriásképek rendereléséhez azonban már nem volt elég a programozó otthoni számítógépe, a munkahelyén lévő egyik szerver is 50 órán át dolgozott az előállításával. További optimalizálással azonban a generálás ideje akár fél órára is lecsökkenthető. Fejes József eredményéről a Gizmodo nevű technológiai blog is beszámolt, videója is nagyon nézett, ezért a képgenerátor további fejlesztését tervezi, számos további ötlete van vele.