Sellainen askarruttava asia, että sattuuko joku tietämään, miten c#:ssa voisi piirtää yhden pixelin? Jos vaikkapa haluaisi kuvata satunnaista dataa kuvan muodossa piirtämällä kunkin lomakkeen pixelin arvon mukaisella värillä silmukassa, joka käy läpi kaikki ruudun pixelit.
Olen tehnyt sen piirtämällä jokaiseen pisteeseen rectangle -piirto-objektin arvoilla (x, y, 1, 1), eli siis yhden pikselin kokoinen neliö, mutta sellaisella vaikkapa 320x200 ruudun täyttäminen hidastaa ohjelmaa todella paljon. Samaten olen luonut lomakkeen kokoisen bitmap-objektin ja käyttänyt sen putPixel(x, y, color) -metodia, mutta se on suunilleen yhtä raskas operaatio.
Tiedättekö siis mitään tehokasta tapaa piirtää pikseli kerrallaan?
Olen tehnyt sen piirtämällä jokaiseen pisteeseen rectangle -piirto-objektin arvoilla (x, y, 1, 1), eli siis yhden pikselin kokoinen neliö, mutta sellaisella vaikkapa 320x200 ruudun täyttäminen hidastaa ohjelmaa todella paljon. Samaten olen luonut lomakkeen kokoisen bitmap-objektin ja käyttänyt sen putPixel(x, y, color) -metodia, mutta se on suunilleen yhtä raskas operaatio.
Tiedättekö siis mitään tehokasta tapaa piirtää pikseli kerrallaan?
Vastaukset 2
Vanhimmat
olla tehokasta tapaa, tehokkain mihin olet päässyt on juurikin putpixel()
Osoittimien käyttö voisi olla ratkaisu ongelmaasi. Itse en ole asiaan perehtynyt, mutta googlella löysin sivun, josta voisi olla hyötyä alkuun pääsemisen kannalta:
http://www.codeproject.com/cs/media/csharpgraphicfilters11.asp