Täällä oli jo pixelöinti, ja täällä oli myös jo blur, mutta mitään sellaista ei tainnut olla, missä molemmat olisi yhdessä.
' Yhdistetty pixelöinti ja blur
' Tämän pohjana on käytetty Eero Harmaalan Color bluria, pixelöintiosuus on
' täysin itse tehty
DEFINT A-Z
RANDOMIZE TIMER
SCREEN 13
CLS
ykoko = 200 ' Pehmennettävän alueen pystykoko
xkoko = 320 ' ----------------------vaaka----
pk = 2 ' Pixelin koko
FOR i = 1 TO 75 ' Hieman ympyröitä pixelöitäväksi
CIRCLE (INT(RND * 320), INT(RND * 200)), INT(RND * 100), INT(RND * 256)
NEXT i
DIM pal(2, 255)
FOR v = 0 TO 255
OUT &H3C7, v
pal(0, v) = INP(&H3C9) ' punanen
pal(1, v) = INP(&H3C9) ' vihree
pal(2, v) = INP(&H3C9) ' sininen
NEXT v
PRINT "Paina jotain näppäintä aloittaaksesi pixelöimisen"
DO
LOOP WHILE INKEY$ = ""
FOR y = 0 TO ykoko - 1 STEP pk
FOR x = 0 TO xkoko - 1 STEP pk
FOR x2 = x TO x + pk - 1 ' Käydään läpi pk*pk alueita
FOR y2 = y TO y + pk - 1
pv = POINT(x2, y2) ' Katsoo alla olevan värin
vkr = vkr + pal(0, pv)
vkg = vkg + pal(1, pv)
vkb = vkb + pal(2, pv)
NEXT y2
NEXT x2
jakaja = pk * pk ' Laskee luvun, millä väriarvot pitää jakaa
vkr = INT(vkr / jakaja)
vkg = INT(vkg / jakaja)
vkb = INT(vkb / jakaja)
le = 111
FOR v = 0 TO 255
eta = SQR(ABS(vkr - pal(0, v)) ^ 2 + ABS(vkg - pal(1, v)) ^ 2 + ABS(vkb - pal(2, v)) ^ 2)
IF eta < le THEN le = eta: vari = v
NEXT v
LINE (x, y)-STEP(pk - 1, pk - 1), vari, BF ' Piirtää ison pixelin
IF INKEY$ <> "" THEN END ' Jos joku ei vaikka jaksa odottaa loppuun asti
NEXT x
NEXT y
LOCATE 1, 1
PRINT "Pixelöinti suoritettu"
DO
LOOP WHILE INKEY$ = ""
ENDMiksei tätä ole muka julkaistu? Tämähän on hyvä koodivinkki!
Aihe on jo aika vanha, joten et voi enää vastata siihen.