Changeset 2005


Ignore:
Timestamp:
Nov 17, 2007, 12:35:59 PM (13 years ago)
Author:
Sam Hocevar
Message:
  • Nicer colour pattern.
Location:
www/study
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • www/study/part5.html

    r2002 r2005  
    6868<h3> 5.2. Accounting for other dimensions </h3>
    6969
    70 <p> The following patterns shows three ways to dither the same colour
    71 using our 8-colour palette. The first one mixes black, yellow and white
    72 pixels. The second one mixes red, green and cyan pixels. The last one
    73 mixes red, green and magenta pixels. But they all visually blend to the
    74 same colour: </p>
     70<p> The following patterns show four ways to dither the same colour using
     71our 8-colour palette. The first one mixes black, red and white pixels. The
     72second one mixes black, red and cyan pixels. The third mixes black, red, green
     73and magenta pixels. The last one mixes black, red, green and blue pixels. But
     74all patterns visually blend to the same shade: </p>
    7575
    7676<p style="text-align: center;">
    77   <img src="pat5-1-2.png" width="240" height="160"
     77  <img src="pat5-1-2.png" width="320" height="160"
    7878       class="inline" alt="3 ways to dither the same colour" />
    7979</p>
  • www/study/study.py

    r2002 r2005  
    536536
    537537# Pattern 5.1.2: different colours give the same result
    538 dest = Image((240, 160))
     538dest = Image((320, 160))
    539539for x in range(80):
    540540    for y in range(80):
    541         r = DITHER_BAYER44[(y / 4) % 4][(x / 4) % 4] > 7
    542         g = DITHER_BAYER44[(y / 4) % 4][(x / 4) % 4] > 13
    543         b = DITHER_BAYER44[(y / 4) % 4][(x / 4) % 4] > 7
     541        r = DITHER_BAYER44[(y / 8) % 4][(x / 8) % 4] > 7
     542        g = DITHER_BAYER44[(y / 8) % 4][(x / 8) % 4] > 13
     543        b = DITHER_BAYER44[(y / 8) % 4][(x / 8) % 4] > 13
    544544        dest.setRgb(x, y, r, b, g)
    545545    for y in range(80, 160):
    546546        r = DITHER_BAYER44[y % 4][x % 4] > 7
    547547        g = DITHER_BAYER44[y % 4][x % 4] > 13
    548         b = DITHER_BAYER44[y % 4][x % 4] > 7
     548        b = DITHER_BAYER44[y % 4][x % 4] > 13
    549549        dest.setRgb(x, y, r, b, g)
    550550for x in range(80, 160):
    551551    for y in range(80):
    552         r = DITHER_BAYER44[(y / 4) % 4][(x / 4 + 1) % 4] > 7
    553         g = DITHER_BAYER44[(y / 4) % 4][(x / 4) % 4] > 13
    554         b = DITHER_BAYER44[(y / 4) % 4][(x / 4) % 4] > 7
     552        r = DITHER_BAYER44[(y / 8) % 4][(x / 8) % 4] > 7
     553        g = DITHER_BAYER44[(y / 8) % 4][(x / 8 + 1) % 4] > 13
     554        b = DITHER_BAYER44[(y / 8) % 4][(x / 8 + 1) % 4] > 13
    555555        dest.setRgb(x, y, r, b, g)
    556556    for y in range(80, 160):
    557         r = DITHER_BAYER44[y % 4][(x + 1) % 4] > 7
    558         g = DITHER_BAYER44[y % 4][x % 4] > 13
    559         b = DITHER_BAYER44[y % 4][x % 4] > 7
     557        r = DITHER_BAYER44[y % 4][x % 4] > 7
     558        g = DITHER_BAYER44[y % 4][(x + 1) % 4] > 13
     559        b = DITHER_BAYER44[y % 4][(x + 1) % 4] > 13
    560560        dest.setRgb(x, y, r, b, g)
    561561for x in range(160, 240):
    562562    for y in range(80):
    563         r = DITHER_BAYER44[(y / 4 + 1) % 4][(x / 4 + 1) % 4] > 7
    564         g = DITHER_BAYER44[(y / 4) % 4][(x / 4) % 4] > 13
    565         b = DITHER_BAYER44[(y / 4 + 1) % 4][(x / 4) % 4] > 7
     563        r = DITHER_BAYER44[(y / 8 + 1) % 4][(x / 8 + 1) % 4] > 7
     564        g = DITHER_BAYER44[(y / 8) % 4][(x / 8) % 4] > 13
     565        b = DITHER_BAYER44[(y / 8 + 1) % 4][(x / 8) % 4] > 13
    566566        dest.setRgb(x, y, r, b, g)
    567567    for y in range(80, 160):
    568568        r = DITHER_BAYER44[(y + 1) % 4][(x + 1) % 4] > 7
    569569        g = DITHER_BAYER44[y % 4][x % 4] > 13
    570         b = DITHER_BAYER44[(y + 1) % 4][x % 4] > 7
     570        b = DITHER_BAYER44[(y + 1) % 4][x % 4] > 13
     571        dest.setRgb(x, y, r, b, g)
     572for x in range(240, 320):
     573    for y in range(80):
     574        r = DITHER_BAYER44[(y / 8 + 1) % 4][(x / 8) % 4] > 7
     575        g = DITHER_BAYER44[(y / 8) % 4][(x / 8) % 4] > 13
     576        b = DITHER_BAYER44[(y / 8) % 4][(x / 8 + 2) % 4] > 13
     577        dest.setRgb(x, y, r, b, g)
     578    for y in range(80, 160):
     579        r = DITHER_BAYER44[(y + 1) % 4][x % 4] > 7
     580        g = DITHER_BAYER44[y % 4][x % 4] > 13
     581        b = DITHER_BAYER44[y % 4][(x + 2) % 4] > 13
    571582        dest.setRgb(x, y, r, b, g)
    572583dest.writePng("pat5-1-2.png")
Note: See TracChangeset for help on using the changeset viewer.