Using inkyPHAT on RPI Zero with below code I created to see if I can create some bar graphs.
I’m puzzled on why it draws inverted? at the end of the program it corrects with BLACK background and WHITE line?
import time
from PIL import Image, ImageDraw
from inky.auto import auto
def draw_line(line_width, speed):
# Initialize the InkyPHAT object
inky_display = auto()
inky_display.set_border(inky_display.BLACK)
# Create a new PIL image object with a black background
img = Image.new("P", (inky_display.WIDTH, inky_display.HEIGHT), inky_display.BLACK)
draw = ImageDraw.Draw(img)
inky_display.set_image(img)
inky_display.show()
time.sleep(1)
# Calculate the y-coordinate for the center of the line
y_center = inky_display.HEIGHT // 2
# Loop to animate the drawing of the line
for x in range(0, inky_display.WIDTH, speed):
# Draw a vertical line segment with the specified width at the current position
draw.rectangle((x, y_center - line_width // 2, x + speed, y_center + line_width // 2), fill=inky_display.WHITE)
# Update the display every 10 iterations to speed up the animation
if x % 10 == 0:
# Set the image on the InkyPHAT display and show it
inky_display.set_image(img)
inky_display.show()
# Pause before drawing the next segment
time.sleep(0.01) # Reduced sleep time
Get the line width and speed as input from the user
line_width = int(input("Enter the width of the line in pixels: "))
speed = int(input("Enter the speed of the animation (1 for fastest, higher for slower): "))
Call the function with the user-specified values
draw_line(line_width, speed)