From 721e7d44215ea87801c9ea163618f9645f32a402 Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Mon, 31 Jul 2023 09:12:19 -0500 Subject: [PATCH 1/3] enable special effects again overexp and solarize are gone, dunno where they went but are simply not available per the espcamera docs (effects numbers are 0..6 inclusive) --- adafruit_pycamera.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/adafruit_pycamera.py b/adafruit_pycamera.py index b0bb762..66671e9 100644 --- a/adafruit_pycamera.py +++ b/adafruit_pycamera.py @@ -76,7 +76,7 @@ class PyCamera: espcamera.FrameSize.QSXGA, ] - effects = ("Normal", "Negative", "Grayscale", "Reddish", "Greenish", "Bluish", "Sepia", "Overexp", "Solarize") + effects = ("Normal", "Invert", "B&W", "Reddish", "Greenish", "Bluish", "Sepia") modes = ("JPEG", "GIF", "STOP") _AW_DOWN = const(15) @@ -135,7 +135,7 @@ def __init__(self) -> None: self.splash = displayio.Group() self._sd_label = label.Label(terminalio.FONT, text="SD ??", color=0x0, x=180, y=10, scale=2) - self._effect_label = label.Label(terminalio.FONT, text="", color=0xFFFFFF, x=4, y=10, scale=2) + self._effect_label = label.Label(terminalio.FONT, text="EFFECT", color=0xFFFFFF, x=4, y=10, scale=2) self._mode_label = label.Label(terminalio.FONT, text="MODE", color=0xFFFFFF, x=150, y=10, scale=2) # AW9523 GPIO expander @@ -245,8 +245,8 @@ def __init__(self) -> None: self.display.refresh() #self.camera.colorbar = True - #self.effect = microcontroller.nvm[_NVM_EFFECT] - #self.camera.saturation = 3 + self.effect = microcontroller.nvm[_NVM_EFFECT] + self.camera.saturation = 3 self.resolution = microcontroller.nvm[_NVM_RESOLUTION] self.mode = microcontroller.nvm[_NVM_MODE] print("init done @", time.monotonic()-self.t) @@ -301,7 +301,7 @@ def effect(self, setting): setting = (setting + len(self.effects)) % len(self.effects) self._effect = setting self._effect_label.text = self.effects[setting] - self.camera.effect = setting + self.camera.special_effect = setting microcontroller.nvm[_NVM_EFFECT] = setting self.display.refresh() From 6f21d07f10da716e27caa8b119aa8e756cc75e35 Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Mon, 31 Jul 2023 09:12:32 -0500 Subject: [PATCH 2/3] clean up leftover lines from the old way of capturing --- adafruit_pycamera.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/adafruit_pycamera.py b/adafruit_pycamera.py index 66671e9..bc353fa 100644 --- a/adafruit_pycamera.py +++ b/adafruit_pycamera.py @@ -227,8 +227,6 @@ def __init__(self) -> None: self.right = Debouncer(self.right_pin) self._bigbuf = None - self._bitmap1 = displayio.Bitmap(240, 176, 65535) - self._bitmap2 = displayio.Bitmap(240, 176, 65535) self._topbar = displayio.Group() self._res_label = label.Label(terminalio.FONT, text="", color=0xFFFFFF, x=0, y=10, scale=2) @@ -473,7 +471,6 @@ def capture_jpeg(self): def continuous_capture_start(self): self._bitmap1 = self.camera.take(1) - #self.camera._imagecapture.continuous_capture_start(self._bitmap1, self._bitmap2) def capture_into_bitmap(self, bitmap): self.camera.capture(bitmap) From acbce44f01d4ec8dc67033b994a7b9ed3b44df0b Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Mon, 31 Jul 2023 09:27:26 -0500 Subject: [PATCH 3/3] restore onionskin stop motion mode and animated gif mode --- adafruit_pycamera.py | 4 +++- code.py | 6 ++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/adafruit_pycamera.py b/adafruit_pycamera.py index bc353fa..1a03401 100644 --- a/adafruit_pycamera.py +++ b/adafruit_pycamera.py @@ -5,6 +5,7 @@ import board from digitalio import DigitalInOut, Direction, Pull from adafruit_debouncer import Debouncer +import bitmaptools import busio import adafruit_lis3dh import neopixel @@ -473,7 +474,8 @@ def continuous_capture_start(self): self._bitmap1 = self.camera.take(1) def capture_into_bitmap(self, bitmap): - self.camera.capture(bitmap) + self._bitmap1 = self.camera.take(1) + bitmaptools.blit(bitmap, self._bitmap1, 0, 0) def continuous_capture(self): return self.camera.take(1) diff --git a/code.py b/code.py index 84b937d..c1df3a7 100644 --- a/code.py +++ b/code.py @@ -6,7 +6,7 @@ import adafruit_pycamera import displayio import gifio -#import ulab.numpy as np +import ulab.numpy as np import bitmaptools @@ -21,7 +21,6 @@ last_frame = displayio.Bitmap(pycam.camera.width, pycam.camera.height, 65535) onionskin = displayio.Bitmap(pycam.camera.width, pycam.camera.height, 65535) while True: - """ if (pycam.mode_text == "STOP" and pycam.stop_motion_frame != 0): # alpha blend new_frame = pycam.continuous_capture() @@ -29,8 +28,7 @@ displayio.Colorspace.RGB565_SWAPPED) pycam.blit(onionskin) else: - """ - pycam.blit(pycam.continuous_capture()) + pycam.blit(pycam.continuous_capture()) #print("\t\t", capture_time, blit_time) pycam.keys_debounce()