From 5d4ad4b8ca6a6d4643a1ca37a8e626136dbad3e5 Mon Sep 17 00:00:00 2001 From: Vik Paruchuri Date: Tue, 29 Jan 2013 17:15:02 -0500 Subject: [PATCH] Simple method to count colors in an image --- .../xmodule/combined_open_ended_module.py | 1 - .../xmodule/open_ended_image_submission.py | 29 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 common/lib/xmodule/xmodule/open_ended_image_submission.py diff --git a/common/lib/xmodule/xmodule/combined_open_ended_module.py b/common/lib/xmodule/xmodule/combined_open_ended_module.py index 0b1dd39d4e..66426bba28 100644 --- a/common/lib/xmodule/xmodule/combined_open_ended_module.py +++ b/common/lib/xmodule/xmodule/combined_open_ended_module.py @@ -617,7 +617,6 @@ class CombinedOpenEndedModule(XModule): return progress_object - class CombinedOpenEndedDescriptor(XmlDescriptor, EditingDescriptor): """ Module for adding combined open ended questions diff --git a/common/lib/xmodule/xmodule/open_ended_image_submission.py b/common/lib/xmodule/xmodule/open_ended_image_submission.py new file mode 100644 index 0000000000..b802ab5aa5 --- /dev/null +++ b/common/lib/xmodule/xmodule/open_ended_image_submission.py @@ -0,0 +1,29 @@ +from PIL import Image + +TRUSTED_IMAGE_DOMAINS = [ + 'wikipedia.com', + 'wikipedia.net', + 'wikipedia.org' +] + +MAX_IMAGE_DIM = 150 +MAX_COLORS_TO_COUNT = 16 +MAX_COLORS = 5 + +class ImageProperties(object): + def __init__(self, image): + self.image = image + image_size = self.image.size + if image_size[0]> MAX_IMAGE_DIM or image_size[1] > MAX_IMAGE_DIM: + self.image = self.image.resize((MAX_IMAGE_DIM, MAX_IMAGE_DIM)) + self.image_size = self.image.size + + def count_colors(self): + colors = self.image.getcolors(MAX_COLORS_TO_COUNT) + if colors is None: + colors = MAX_COLORS_TO_COUNT + else: + colors = len(colors) + + +