From d6996452e5bfd80673f47f8e78c72c42dd7f76a2 Mon Sep 17 00:00:00 2001 From: Grant Sanderson Date: Mon, 13 Aug 2018 14:12:45 -0700 Subject: [PATCH] Make sure cairo transform accounts for frame center --- camera/camera.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/camera/camera.py b/camera/camera.py index 701dd64f..03e2b658 100644 --- a/camera/camera.py +++ b/camera/camera.py @@ -301,6 +301,7 @@ class Camera(object): ph = self.get_pixel_height() fw = self.get_frame_width() fh = self.get_frame_height() + fc = self.get_frame_center() surface = cairo.ImageSurface.create_for_data( pixel_array, cairo.FORMAT_ARGB32, @@ -311,7 +312,8 @@ class Camera(object): ctx.set_matrix(cairo.Matrix( fdiv(pw, fw), 0, 0, -fdiv(ph, fh), - pw / 2, ph / 2, + (pw / 2) + fc[0] * fdiv(pw, fw), + (ph / 2) + fc[1] * fdiv(ph, fh), )) self.cache_cairo_context(pixel_array, ctx) return ctx