text: #!/usr/bin/python3
  
  # Light-painting example for Adafruit DotStar RGB LED strip.
  # Loads image, displays column-at-a-time on LEDs at a reasonable
  # speed for long exposure photography.
  # See dotstar_simpletest.py for a much simpler example script.
  # See dotstar_image_pov.py for a faster persistence-of-vision example.
  
  import time
  import board
  from PIL import Image
  import adafruit_dotstar as dotstar
  
  NUMPIXELS = 30         # Number of LEDs in strip
  FILENAME = 'hello.png' # Image file to load
  
  # First two arguments in strip declaration identify the clock and data pins
  # (here we're using the hardware SPI pins). Last argument identifies the
  # color order -- older DotStar strips use GBR instead of BRG.
  DOTS = dotstar.DotStar(board.SCK, board.MOSI, NUMPIXELS, brightness=0.25,
                         auto_write=False, pixel_order=dotstar.BGR)
  
  # Load image in RGB format and get dimensions:
  print('Loading...')
  IMG = Image.open(FILENAME).convert("RGB")
  PIXELS = IMG.load()
  WIDTH = IMG.size[0]
  HEIGHT = IMG.size[1]
  print('%dx%d pixels' % IMG.size)
  
  if HEIGHT > NUMPIXELS:
      HEIGHT = NUMPIXELS
  
  # Calculate gamma correction table, makes mid-range colors look 'right':
  GAMMA = bytearray(256)
  for i in range(256):
      GAMMA[i] = int(pow(float(i) / 255.0, 2.7) * 255.0 + 0.5)
  
  print('Displaying...')
  while True:                      # Loop forever
  
      for x in range(WIDTH):       # For each column of image...
          for y in range(HEIGHT):  # For each pixel in column...
              value = PIXELS[x, y] # Read pixel in image
              DOTS[y] = (          # Set pixel #y in strip
                  GAMMA[value[0]], # Gamma-corrected red
                  GAMMA[value[1]], # Gamma-corrected green
                  GAMMA[value[2]]) # Gamma-corrected blue
          DOTS.show()              # Refresh LED strip
          time.sleep(0.01)         # Pause 1/100 sec.
  
      DOTS.fill(0)                 # Clear strip and pause 1/4 sec.
      DOTS.show()
      time.sleep(0.25)
  