ICC Examin (unix name: iccexamin) is a viewer for the internals of a ICC profile, measurement data (CGATS), argylls gamut vrml visualisations and video card gamma tables.
The Home Page provides more information.
ICC Examin colour profile, CGATS measurement, VRML gamut and ncl2 viewer
Home Page: https://gitlab.com/oyranos/icc-examin
License: Other
ICC Examin (unix name: iccexamin) is a viewer for the internals of a ICC profile, measurement data (CGATS), argylls gamut vrml visualisations and video card gamma tables.
The Home Page provides more information.
Hi, All!
Development version of FreeBSD switched to clang version 4.0. Compiling ICC Examin show errors:
/wrkdirs/usr/ports/graphics/iccexamin/work/icc_examin-0.55/icc_profile_tags.cpp:352:28: error: ordered comparison between pointer and zero ('char *' and 'int')
while (strchr(txt, 13) > 0) { // \r 013 0x0d
~~~~~~~~~~~~~~~ ^ ~
/wrkdirs/usr/ports/graphics/iccexamin/work/icc_examin-0.55/icc_profile_tags.cpp:357:15: error: ordered comparison between pointer and zero ('char *' and 'int')
if (pos > 0) {
~~~ ^ ~
The attached patch eliminates this.
patch-icc_profile_tags.cpp.txt
... on Yosemite
(moved from SF Milan Knizek)
When the perceptual intent in menu /View/Intent is chosen, then Watch Colors 3D plugin (ICC Examin) shows that all image pixels move to zero of LAB space instead of to the boundaries of the proof colour space. When relative colorimetric is chosen, Watch Colors 3D works as expected.
The problem can be reproduced on Arch Linux (x86_64) and only with Czech locale. When LANG=C is set, the icc_examin_cp plugin crashes and GUI disappears instead.
Steps to reproduce:
0. Set LANG="cs_CZ.UTF-8" (check locale -a to see if it exists).
The attached image illustrates the matter.
Oyranos, CinéPaint, ICC Examin are compiled from GIT using the build scripts on www.oyranos.org.
When the programs are compiled on Ubuntu 12.04 LTS, the bug does not appear.
Attached is valgrind output for the Czech locale. (i.e. no crash) and for LANG=C as well.
Anything else to help with debugging?
See attachements on http://sourceforge.net/p/oyranos/bugs/41/
The profile black points are shown as x=0, y=0. But X=Y=Z=0 doesn't mean x=y=0: http://www.brucelindbloom.com/index.html?Eqn_XYZ_to_xyY.html
"Watch out for black, where X = Y = Z = 0. In that case, you may want to set x and y to the chromaticity coordinates of your reference white."
For white point 0.964203, 1.000000, 0.824905:
x= 0.964203/(0.964203+1.000000+0.824905)=0.964203/2.789108=0.345703
y= 1.000000/(0.964203+1.000000+0.824905)=1.000000/2.789108=0.358537
I seem to recall seeing x=y=0.333333 as the chromaticity coordinates for black in old V2 matrix profiles.
Red Colorant, Blue Colorant, and Green Colorant in the top pane, when clicked, all show exactly the same information, the red, blue, and green XYZ primaries and the xy points on the xy graph. Why not just have "Colorants" instead of three separate entries for the same information display?
Red tone reproduction curve, Green tone reproduction curve, and Blue tone reproduction curve in the top pane, when clicked, all show exactly the same information, all three curves at once. Why not just have "Tone reproduction curves" instead of three separate entries for the same information display?
I would very much like to see the xyY coordinates as well as the XYZ coordinates.
The Colorant display is too small for displaying information for larger color spaces such as the Identity color space and the ACES color space, both of which use green chromaticity of x=0,y=1. The ACES color space has a negative blue y coordinate, and so is crushed and the blue dot isn't on the graph. The Colorant display for Widegamut Green is overwritten/crushed. The solution is to let the xy chromaticities diagram be a little larger, extend to a little past +1 on the positive y-axis. For the negative y-axis, down to -0.1 on the y axis accomodates ACES. Camera input matrix profiles can go even more negative for blue XYZ. My own camera has: bXYZ=0.056061, -0.204941, 0.989136
The chrm Chromaticity information is similarly crushed for the larger color spaces, with information being overwritten by other information. A larger chromaticity diagram would help here, too.
Without asking permission, opening an ICC profile with icc_examin automatically creates and writes a profileID tag. Perhaps this should be configurable? Is it already configurable? I don't like seeing my ICC profiles written to without permission. Although I do agree a profileID is a nice tag to have.
The very nice gamut display that I remember seeing is just a mass of jumbled gray and black dots. If I resize the screen, the jumble changes color. The terminal output is:
iccexamin
region not found in 0
X_ChangeProperty: BadAtom (invalid Atom parameter) 0x0
There doesn't seem to be provision for copying values from the iccexamin interface.
[ 35%] Building CXX object CMakeFiles/iccexamin.dir/icc_examin.cpp.o /usr/bin/x86_64-pc-linux-gnu-g++ -I/var/tmp/portage/media-gfx/icc_examin-0.56_p20171007/work/icc-examin-0.56_p20171007 -I/var/tmp/portage/media-gfx/icc_examin-0.56_p20171007/work/icc-examin-0.56_p20171007/FL -I/var/tmp/portage/media-gfx/icc_examin-0.56_p20171007/work/icc-examin-0.56_p20171007/Flmm -I/var/tmp/portage/media-gfx/icc_examin-0.56_p20171007/work/icc_examin-0.56_p20171007_build -I/usr/include/oyranos -I/usr/include/fltk -I/usr/include/freetype2 -DNDEBUG -O2 -march=amdfam10 -pipe -fomit-frame-pointer -floop-interchange -floop-strip-mine -floop-block -o CMakeFiles/iccexamin.dir/icc_examin.cpp.o -c /var/tmp/portage/media-gfx/icc_examin-0.56_p20171007/work/icc-examin-0.56_p20171007/icc_examin.cpp /var/tmp/portage/media-gfx/icc_examin-0.56_p20171007/work/icc-examin-0.56_p20171007/icc_examin.cpp: In constructor ‘ICCexamin::ICCexamin()’: /var/tmp/portage/media-gfx/icc_examin-0.56_p20171007/work/icc-examin-0.56_p20171007/icc_examin.cpp:220:36: error: invalid conversion from ‘int (*)(int, const void*, const char*, ...)’ to ‘oyMessage_f {aka int (*)(int, void*, const char*, ...)}’ [-fpermissive] oyMessageFuncSet( iccMessageFunc );
See also build.log: https://gist.github.com/a17r/36b97e8ee91280c597ffc3af29d04c09
I get the error:
Compiling fl_i18n_example.cxx ...
c++ -Wall -g -L. -Wunused -fno-exceptions -DUSE_THREADS -DUSE_GETTEXT -I/usr/local/include -I. -I/usr/include/g++ -I/usr/include -I/usr/local/include -I/usr/local/include/freetype2 -O2 -pipe -fstack-protector -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -fvisibility-inlines-hidden -I/usr/local/include -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_THREAD_SAFE -D_REENTRANT -c fl_i18n_example.cxx
c++: warning: argument unused during compilation: '-L.' [-Wunused-command-line-argument]
In file included from fl_i18n_example.cxx:3:
./fl_i18n.H:34:10: fatal error: 'config.h' file not found
#include "config.h"
^~~~~~~~~~
1 error generated.
*** Error code 1
Full log is here
https://poudriere.passap.ru/data/HEAD-amd64-testing/2017-08-03_12h24m00s/logs/errors/icc-examin-0.56.log
If I apply the following patch, then build succeeds:
--- fl_i18n/fl_i18n.H.orig 2017-08-03 12:43:05.703182000 +0300
+++ fl_i18n/fl_i18n.H 2017-08-03 12:43:23.617338000 +0300
@@ -31,7 +31,7 @@
#ifndef FL_I18N_H
#define FL_I18N_H
-#include "config.h"
+#include "../config.h"
#define FL_I18N_VERSION 101
#if defined(_WIN32) && !defined(__MINGW32__)
Full log is here: https://poudriere.passap.ru/data/HEAD-amd64-testing/2017-08-03_13h17m26s/logs/icc-examin-0.56.log
This is just FYI. I'm not sure what to do with this knowledge. ;-)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.