X-Git-Url: http://dolda2000.com/gitweb/?p=kaka%2Fcakelight.git;a=blobdiff_plain;f=src%2Fkaka%2Fcakelight%2FFrame.java;h=053b7137337c62bac1c0ff91d8140e7a60f89b04;hp=0ae0d41f28784a8652393a79d4a7b7d3d0a19c35;hb=b3e103128bae11de70b5ca0bbf9255953d008eaf;hpb=38c759f87fc7de47d9dee60088f2dbc60e0a55fb diff --git a/src/kaka/cakelight/Frame.java b/src/kaka/cakelight/Frame.java index 0ae0d41..053b713 100644 --- a/src/kaka/cakelight/Frame.java +++ b/src/kaka/cakelight/Frame.java @@ -101,6 +101,12 @@ public class Frame { // Imgproc.resize(src, rowImage, new Size(16, config.leds.rows), 0, 0, interpolation); } + private Color wrappedGetLedColor(ListPosition listPosition, int xy) { + Color c = getLedColor(listPosition, xy); + double[] hsv = c.toHSV(); + return Color.hsv(hsv[0], 1, 1); + } + private Color getLedColor(ListPosition listPosition, int xy) { // TODO: maybe use highest value from pixels? 100 % from 1st, 66 % from 2nd, 33 % from 3rd. colors might be strange. switch (listPosition) { @@ -166,10 +172,10 @@ public class Frame { public LedFrame getLedFrame() { LedFrame frame = LedFrame.from(config); int led = 0; - for (int i = 0; i < config.leds.cols; i++) frame.setLedColor(led++, getLedColor(ListPosition.BOTTOM, i)); - for (int i = config.leds.rows - 1; i >= 0; i--) frame.setLedColor(led++, getLedColor(ListPosition.RIGHT, i)); - for (int i = config.leds.cols - 1; i >= 0; i--) frame.setLedColor(led++, getLedColor(ListPosition.TOP, i)); - for (int i = 0; i < config.leds.rows; i++) frame.setLedColor(led++, getLedColor(ListPosition.LEFT, i)); + for (int i = 0; i < config.leds.cols; i++) frame.setLedColor(led++, wrappedGetLedColor(ListPosition.BOTTOM, i)); + for (int i = config.leds.rows - 1; i >= 0; i--) frame.setLedColor(led++, wrappedGetLedColor(ListPosition.RIGHT, i)); + for (int i = config.leds.cols - 1; i >= 0; i--) frame.setLedColor(led++, wrappedGetLedColor(ListPosition.TOP, i)); + for (int i = 0; i < config.leds.rows; i++) frame.setLedColor(led++, wrappedGetLedColor(ListPosition.LEFT, i)); return frame; } }