Das cross platform CLI Tool "iccDumpProfile" aus der Toolsammlung DemoIccMAX der color.org liefert einen Validierungsreport mit der Option "-v
" und findet aus erster Erfahrung die meisten Probleme in ICC-Profilen.
# Git-Repo klonen mkdir ICC && cd ICC git clone https://github.com/InternationalColorConsortium/DemoIccMAX.git cd DemoIccMAX/ # Abhängigkeiten installieren sudo apt install libxml2-dev # bauen cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local -DUSE_SYSTEM_LIBXML2=ON ../Build/Cmake make make install # iccDumpProfile aufrufen; Pfad zur shared library "libIccProfLib2.so.2" muss mit angegeben sein, sonst schlägt der Aufruf fehl PATH=${PATH}:./IccProfLib/ Tools/IccDumpProfile/iccDumpProfile -v profile.icc |
$ iccDumpProfile -v AdobeRGB1998.icc Profile: 'AdobeRGB1998.icc' Profile ID: Profile ID not calculated. Size: 560(0x230) bytes Header ------ Attributes: Reflective | Glossy Cmm: Adobe Creation Date: 8/11/2000 19:51:59 Creator: 'ADBE' = 41444245 Data Color Space: RgbData Flags EmbeddedProfileFalse | UseAnywhere PCS Color Space: XYZData Platform: Macintosh Rendering Intent: Perceptual Profile Class: DisplayClass Profile SubClass: Not Defined Version: 2.10 Illuminant: X=0.9642, Y=1.0000, Z=0.8249 Spectral PCS: NoSpectralData Spectral PCS Range: Not Defined BiSpectral Range: Not Defined MCS Color Space: Not Defined Profile Tags ------------ Tag ID Offset Size Pad ---- ------ ------ ---- --- copyrightTag 'cprt' 252 50 2 profileDescriptionTag 'desc' 304 107 1 mediaWhitePointTag 'wtpt' 412 20 0 mediaBlackPointTag 'bkpt' 432 20 0 redTRCTag 'rTRC' 452 14 2 greenTRCTag 'gTRC' 468 14 2 blueTRCTag 'bTRC' 484 14 2 redColorantTag 'rXYZ' 500 20 0 greenColorantTag 'gXYZ' 520 20 0 blueColorantTag 'bXYZ' 540 20 0 Validation Report ----------------- Profile is valid |
Für TIFFs prüft das Werkzeug "checkit_tiff" auch die Header des eingebetteten Farbprofils. Zur Zeit unterstützt checkit_tiff noch nicht ICCMax (kommt ggf. in Q1/2023).
$ ./checkit_tiff -c ../example_configs/cit_tiff6_baseline_SLUB.cfg ~/git/ValidateICC/testfiles/00000008.tif './checkit_tiff' version: master_v1.3.2-2-g802f888 revision: 791 licensed under conditions of libtiff (see http://libtiff.maptools.org/misc.html) (enabled full ICC profile checking using IccProfLib by color.org) (compiled with flags: ALLOW_ICC1_2001_04 WITH_STRONG_ICC _HAVE_IccProfLib _HAVE_MMAP) cfg_file=../example_configs/cit_tiff6_baseline_SLUB.cfg tiff file/dir=/home/romeyke/git/ValidateICC/testfiles/00000008.tif file: /home/romeyke/git/ValidateICC/testfiles/00000008.tif (./) general --> TIFF should have just one IFD, (lineno: 12) (./) general --> All tag offsets should be word aligned, (lineno: 14) (./) general --> All offsets may only be used once, (lineno: 14) (./) general --> All tag offsets should be greater than zero, (lineno: 14) (./) general --> All IFDs should be word aligned, (lineno: 15) (./) general --> Tags should be sorted in ascending order, (lineno: 15) (./) general --> Cardinality of tags should be equal, (lineno: 15) (./) tag 256 (ImageWidth) --> Tag should have a value in a range of (lineno: 23) (./) tag 257 (ImageLength) --> Tag should have a value in a range of (lineno: 25) (./) tag 258 (BitsPerSample) --> One or more conditions needs to be combined in a logical_or operation (open) (lineno: 32) (./) tag 259 (Compression) --> Tag should have one exact value. (lineno: 36) (./) tag 262 (Photometric) --> Tag should have a value in a range of (lineno: 40) (./) tag 273 (StripOffsets) --> TIFF should contain this tag. (lineno: 45) (./) tag 277 (SamplesPerPixel) --> Tag should have one exact value. (lineno: 50) (./) tag 278 (RowsPerStrip) --> Tag should have a value in a range of (lineno: 55) (./) tag 279 (StripByteCounts) --> TIFF should contain this tag. (lineno: 60) (./) tag 282 (XResolution) --> Tag should have a value in a range of (lineno: 63) (./) tag 283 (YResolution) --> Tag should have a value in a range of (lineno: 66) (./) tag 254 (SubFileType) --> One or more conditions needs to be combined in a logical_or operation (open) (lineno: 74) (./) tag 266 (FillOrder) --> Tag should have one exact value. (lineno: 94) (./) tag 274 (Orientation) --> Tag should have one exact value. (lineno: 110) (./) tag 284 (PlanarConfig) --> Tag should have one exact value. (lineno: 119) (./) tag 296 (ResolutionUnit) --> Tag should have one exact value. (lineno: 138) (./) tag 305 (Software) --> Tag should have a value that matches the RegEx, (lineno: 144) (./) tag 306 (DateTime) --> DateTime tag should contain a valid value. (lineno: 148) (EE) tag 34675 (ICC Profile) --> ICC profile should be valid, but ICC profile is totally invalid if checked with IccProfLib.; found: NonCompliant! - redColorantTag - Offset is not aligned on 4-byte boundary! NonCompliant! - greenColorantTag - Offset is not aligned on 4-byte boundary! NonCompliant! - blueColorantTag - Offset is not aligned on 4-byte boundary! NonCompliant! - mediaWhitePointTag - Offset is not aligned on 4-byte boundary! NonCompliant! - mediaBlackPointTag - Offset is not aligned on 4-byte boundary! NonCompliant! - AToB0Tag - Offset is not aligned on 4-byte boundary! NonCompliant! - AToB1Tag - Offset is no (lineno: 214) (EE)Found 1 errors (EE)No, the given tif is not valid :( |
Für eine weitergehende Analyse kann man ff. Vorgehen wählen: