Skip to content
This repository was archived by the owner on Nov 24, 2024. It is now read-only.

Commit a36f4e1

Browse files
committed
Merge branch 'release/v0.1.2'
2 parents 92ec7e0 + c855fbd commit a36f4e1

20 files changed

+553
-175
lines changed

README.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ Run
2626
2727
$ docker run -d \
2828
--name=colour-analysis \
29+
-e COLOUR_ANALYSIS_JS=https://gitcdn.link/repo/colour-science/colour-analysis-three.js/master/dist/colour-analysis.js \
30+
-e COLOUR_ANALYSIS_POSITION_DTYPE=Float16 \
31+
-e COLOUR_ANALYSIS_COLOUR_DTYPE=Float16 \
2932
-v $IMAGES_DIRECTORY:/home/colour-analysis/static/images
3033
-p 8020:5000 colourscience/colour-analysis
3134

app.py

Lines changed: 69 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
from colour.utilities import domain_range_scale
1717

1818
from colour_analysis import (
19-
COLOURSPACE_MODEL, IMAGE_COLOURSPACE, IMAGE_DECODING_CCTF, PRIMARY_COLOURSPACE,
20-
RGB_colourspaces, RGB_colourspace_volume_visual, SECONDARY_COLOURSPACE,
21-
colourspace_models, decoding_cctfs, spectral_locus_visual,
22-
RGB_image_scatter_visual, image_data)
19+
COLOURSPACE_MODEL, IMAGE_COLOURSPACE, IMAGE_DECODING_CCTF,
20+
PRIMARY_COLOURSPACE, RGB_colourspaces, RGB_colourspace_volume_visual,
21+
RGB_image_scatter_visual, SECONDARY_COLOURSPACE, colourspace_models,
22+
decoding_cctfs, pointer_gamut_visual, spectral_locus_visual, image_data)
2323

2424
__author__ = 'Colour Developers'
2525
__copyright__ = 'Copyright (C) 2018 - Colour Developers'
@@ -32,7 +32,7 @@
3232

3333
__major_version__ = '0'
3434
__minor_version__ = '1'
35-
__change_version__ = '1'
35+
__change_version__ = '2'
3636
__version__ = '.'.join(
3737
(__major_version__,
3838
__minor_version__,
@@ -41,10 +41,11 @@
4141

4242
__all__ = [
4343
'APP', 'CACHE', 'CACHE_DEFAULT_TIMEOUT', 'IMAGES_DIRECTORY',
44-
'images_response', 'decoding_cctfs_response','colourspace_models_response',
45-
'RGB_colourspaces_response', 'RGB_colourspace_volume_visual_response',
46-
'spectral_locus_visual_response', 'RGB_image_scatter_visual_response',
47-
'image_data_response', 'index', 'after_request'
44+
'images_response', 'decoding_cctfs_response',
45+
'colourspace_models_response', 'RGB_colourspaces_response',
46+
'image_data_response', 'RGB_colourspace_volume_visual_response',
47+
'RGB_image_scatter_visual_response', 'spectral_locus_visual_response',
48+
'pointer_gamut_response', 'index', 'after_request'
4849
]
4950

5051
APP = Flask(__name__)
@@ -213,48 +214,61 @@ def RGB_colourspaces_response():
213214
return response
214215

215216

216-
@APP.route('/RGB-colourspace-volume-visual')
217+
@APP.route('/image-data/<image>')
217218
@CACHE.cached(timeout=CACHE_DEFAULT_TIMEOUT, query_string=True)
218-
def RGB_colourspace_volume_visual_response():
219+
def image_data_response(image):
219220
"""
220-
Returns a RGB colourspace volume visual response.
221+
Returns an image data response.
221222
222223
Returns
223224
-------
224225
Response
225-
RGB colourspace volume visual response.
226+
Image data response.
226227
"""
227228

229+
path = os.path.join(os.getcwd(), 'static', 'images', image)
230+
228231
args = request.args
229-
json_data = RGB_colourspace_volume_visual(
230-
colourspace=args.get('colourspace', PRIMARY_COLOURSPACE),
231-
colourspace_model=args.get('colourspaceModel', COLOURSPACE_MODEL),
232-
segments=int(args.get('segments', 16)),
233-
wireframe=_bool_to_bool(args.get('wireframe', False)),
234-
)
232+
json_data = image_data(
233+
path=path,
234+
primary_colourspace=args.get('primaryColourspace',
235+
PRIMARY_COLOURSPACE),
236+
secondary_colourspace=args.get('secondaryColourspace',
237+
SECONDARY_COLOURSPACE),
238+
image_colourspace=args.get('imageColourspace', IMAGE_COLOURSPACE),
239+
image_decoding_cctf=args.get('imageDecodingCctf', IMAGE_DECODING_CCTF),
240+
out_of_primary_colourspace_gamut=_bool_to_bool(
241+
args.get('outOfPrimaryColourspaceGamut', False)),
242+
out_of_secondary_colourspace_gamut=_bool_to_bool(
243+
args.get('outOfSecondaryColourspaceGamut', False)),
244+
out_of_pointer_gamut=_bool_to_bool(
245+
args.get('outOfPointerGamut', False)),
246+
saturate=_bool_to_bool(args.get('saturate', False)))
235247

236248
response = Response(json_data, status=200, mimetype='application/json')
237249
response.headers['X-Content-Length'] = len(json_data)
238250

239251
return response
240252

241253

242-
@APP.route('/spectral-locus-visual')
254+
@APP.route('/RGB-colourspace-volume-visual')
243255
@CACHE.cached(timeout=CACHE_DEFAULT_TIMEOUT, query_string=True)
244-
def spectral_locus_visual_response():
256+
def RGB_colourspace_volume_visual_response():
245257
"""
246-
Returns a spectral locus visual response.
258+
Returns a RGB colourspace volume visual response.
247259
248260
Returns
249261
-------
250262
Response
251-
Spectral locus visual response.
263+
RGB colourspace volume visual response.
252264
"""
253265

254266
args = request.args
255-
json_data = spectral_locus_visual(
267+
json_data = RGB_colourspace_volume_visual(
256268
colourspace=args.get('colourspace', PRIMARY_COLOURSPACE),
257269
colourspace_model=args.get('colourspaceModel', COLOURSPACE_MODEL),
270+
segments=int(args.get('segments', 16)),
271+
wireframe=_bool_to_bool(args.get('wireframe', False)),
258272
)
259273

260274
response = Response(json_data, status=200, mimetype='application/json')
@@ -291,6 +305,8 @@ def RGB_image_scatter_visual_response(image):
291305
args.get('outOfPrimaryColourspaceGamut', False)),
292306
out_of_secondary_colourspace_gamut=_bool_to_bool(
293307
args.get('outOfSecondaryColourspaceGamut', False)),
308+
out_of_pointer_gamut=_bool_to_bool(
309+
args.get('outOfPointerGamut', False)),
294310
sub_sampling=int(args.get('subSampling', 25)),
295311
saturate=_bool_to_bool(args.get('saturate', False)),
296312
)
@@ -301,34 +317,45 @@ def RGB_image_scatter_visual_response(image):
301317
return response
302318

303319

304-
@APP.route('/image-data/<image>')
320+
@APP.route('/spectral-locus-visual')
305321
@CACHE.cached(timeout=CACHE_DEFAULT_TIMEOUT, query_string=True)
306-
def image_data_response(image):
322+
def spectral_locus_visual_response():
307323
"""
308-
Returns an image data response.
324+
Returns a spectral locus visual response.
309325
310326
Returns
311327
-------
312328
Response
313-
Image data response.
329+
Spectral locus visual response.
314330
"""
315331

316-
path = os.path.join(os.getcwd(), 'static', 'images', image)
332+
args = request.args
333+
json_data = spectral_locus_visual(
334+
colourspace=args.get('colourspace', PRIMARY_COLOURSPACE),
335+
colourspace_model=args.get('colourspaceModel', COLOURSPACE_MODEL),
336+
)
337+
338+
response = Response(json_data, status=200, mimetype='application/json')
339+
response.headers['X-Content-Length'] = len(json_data)
340+
341+
return response
342+
343+
344+
@APP.route('/pointer-gamut-visual')
345+
@CACHE.cached(timeout=CACHE_DEFAULT_TIMEOUT, query_string=True)
346+
def pointer_gamut_response():
347+
"""
348+
Returns a *Pointer's Gamut* visual response.
349+
350+
Returns
351+
-------
352+
Response
353+
*Pointer's Gamut* visual response.
354+
"""
317355

318356
args = request.args
319-
json_data = image_data(
320-
path=path,
321-
primary_colourspace=args.get('primaryColourspace',
322-
PRIMARY_COLOURSPACE),
323-
secondary_colourspace=args.get('secondaryColourspace',
324-
SECONDARY_COLOURSPACE),
325-
image_colourspace=args.get('imageColourspace', IMAGE_COLOURSPACE),
326-
image_decoding_cctf=args.get('imageDecodingCctf', IMAGE_DECODING_CCTF),
327-
out_of_primary_colourspace_gamut=_bool_to_bool(
328-
args.get('outOfPrimaryColourspaceGamut', False)),
329-
out_of_secondary_colourspace_gamut=_bool_to_bool(
330-
args.get('outOfSecondaryColourspaceGamut', False)),
331-
saturate=_bool_to_bool(args.get('saturate', False)))
357+
json_data = pointer_gamut_visual(
358+
colourspace_model=args.get('colourspaceModel', COLOURSPACE_MODEL), )
332359

333360
response = Response(json_data, status=200, mimetype='application/json')
334361
response.headers['X-Content-Length'] = len(json_data)

0 commit comments

Comments
 (0)