Programowanie w systemie UNIX/color menagment

Z Wikibooks, biblioteki wolnych podręczników.

System zarządzania kolorem ( ang. Color menagment system = CMS = color workflow )[1][2]



System zarządzania kolorem (CMS, ang. Color Management System) – standard systemowy, który umożliwia wierne odwzorowanie kolorystyczne danego produktu (reprodukcja kolorów). CMS pozwala na utworzenie dokładnie takich samych profili kolorystycznych na wszystkich urządzeniach, które biorą udział w procesie prepress i press (dtp).

CMS[edytuj]

Poziomy[edytuj]

  • software
    • system operacyjny
    • aplikacja
  • urządzenia
    • drukarka
    • monitor ( ang. display)
    • karta graficzna
  • plik


Aplikacja


Plik

cele[edytuj]

System zarządzania barwami:

  • zapewnia przenośność barwy w przepływie pracy i niezależność barw od urządzeń (niezależna przestrzeń barw)
  • umożliwia kontrolę koloru w etapie prepress
  • wymaga kalibracji urządzeń (posiada profile barwowe urządzeń)
  • posiada algorytm przekształcania modeli barw i algorytm renderowania barw spoza gamy


Color

  • color consistency
  • color accuracy
  • the color to match

Zobacz

Przyczyny niezgodności kolorystycznych:[edytuj]

  • różne modele pracy urządzeń
  • różne gamy barw na urządzeniach
  • indywidualne cechy urządzeń
  • brak kalibracji koloru wszystkich urządzeń biorących aktywny udział w przetwarzaniu koloru[3]
Utrata kontrastu między obiektem a obrazem

typy[edytuj]

profile kolorów icc[edytuj]

To jest 180-stopniowy widok wokół dwóch gam profili ICC. Wykres siatkowy ( ang. wireframe) jest profilem przestrzeni roboczej, a bryła jest profilem drukarki atramentowej.

wersje specyfikacji[edytuj]

ICC Profile Specification

przeglądarki[edytuj]

Narzędzia do tworzenia, edycji i oceny profili ICC

Zrzut ekranu przeglądarki profili kolorów w KDE Plasma 5, przedstawiający profil kolorów

Jak sprawdzić czy jest wbudowny profil ICC w pliku graficznym?[edytuj]

png


Wyodrębnij profil ICC z pliku graficznego:

exiftool -icc_profile -b -w icc somefile.png

Programy[edytuj]

rawpedia : how to extract and examine ICC profiles

Programy


Biblioteki

Biblioteki do koloru

  • ColorAide to czyste obiektowe podejście do kolorów w Pythonie, zaprojektowane z myślą o wygodzie, elastyczności i łatwości chwytania i pracy
  • colour-science to pakiet Pythona o otwartym kodzie źródłowym, zapewniający kompleksową liczbę algorytmów i zbiorów danych do nauki o kolorach
  • coloria-dev to narzędzia do badania koloru
  • python-colormath to prosty moduł Pythona, który oszczędza użytkownikowi bezpośredniego zajmowania się matematyką kolorów.
  • opencolorio Kompletne rozwiązanie do zarządzania kolorami, przeznaczone do produkcji filmów, z naciskiem na efekty wizualne i animację komputerową.
    • Zarządzanie kolorami w Blenderze opiera się na bibliotece OpenColorIO.[5]
  • Imath to biblioteka C++ i Pythona zawierająca operacje wektorowe 2D i 3D, macierzowe i matematyczne dla grafiki komputerowej
  • pure-color = biblioteka do konwersji koloru ( JS) napisna przez Wicky Nilliams


Renderowanie:

  • OpenCue to otwarty System zarządzania renderowaniem, który można wdrożyć w produkcjach efektów wizualnych i animacji
  • OpenShadingLanguage
  • OpenFX API efektów specjalnych( FX ) triki filmowowe

Biblioteki do obróbki plików:

  • OpenImageIO to biblioteka do Odczytywanie, zapisywanie i przetwarzanie obrazów w wielu różnych formatach plików przy użyciu interfejsu API niezależnego od formatu, przeznaczonego do aplikacji VFX


Format plików

openexr[edytuj]

git clone https://github.com/AcademySoftwareFoundation/openexr.git
cd openexr/
git checkout RB-3.1
mkdir build
cd build
cmake .. -DOPENEXR_INSTALL_TOOLS=Off -DBUILD_TESTING=Off
make -j $JOBS
sudo make install
cd ../..

colormgr[edytuj]

Demon colord ma narzędzia: lista urządzeń

colormgr get-devices

Domyślny profil ICC

colormgr device-get-default-profile /org/freedesktop/ColorManager/devices/cups_DeskJet_Plus_6000

Przykładowy wynik:

There is no assigned profile for /org/freedesktop/ColorManager/devices/cups_DeskJet_Plus_6000

ImageMagic identify[edytuj]

identify -verbose example.jpg | grep -A1 Profile-icc

iccdump[edytuj]

Argyll's iccdump ( ICC profile to txt)
iccdump
Dump an ICC file in human readable form, V2.21
Author: Graeme W. Gill
usage: iccdump [-v level] [-t tagname] [-s] infile
 -v level                 Verbose level 1-3 (default 2)
 -t tag                   Dump this tag only (can be used multiple times)
 -s                       Search for embedded profile
 -i                       Check V4 ID value

extracticc[edytuj]

extracticc
Extract an ICC profile from a TIFF or JPEG file, Version 2.2.0
Author: Graeme W. Gill, licensed under the AGPL Version 3
Diagnostic: Too few parameters
usage: extracticc  [-v] infile.tif/jpg outfile.icc
 -v            Verbose

DemoICCMAX[edytuj]

DemoICCMAX[6] = Implementacja demonstracyjna dla profili kolorów iccMAX[7]


iccApplyProfiles
 Usage: iccApplyProfiles src_tiff_file dst_tiff_file dst_sample_encoding interpolation dst_compression dst_planar dst_embed_icc {{-ENV:sig value} profile_file_path rendering_intent {-PCC connection_conditions_path}}

For dst_sample_encoding:
    0 - Same as src
    1 - icEncode8Bit
    2 - icEncode16Bit
    4 - icEncodeFloat

  For interpolation:
    0 - Linear
    1 - Tetrahedral

  For dst_compression:
    0 - No compression
    1 - LZW compression

  For dst_planar:
    0 - Contig
    1 - Separation

  For dst_embed_icc:
    0 - Do not Embed
    1 - Embed Last ICC

  For rendering_intent:
    0 - Perceptual
    1 - Relative
    2 - Saturation
    3 - Absolute
    10 - Perceptual without D2Bx/B2Dx
    11 - Relative without D2Bx/B2Dx
    12 - Saturation without D2Bx/B2Dx
    13 - Absolute without D2Bx/B2Dx
    20 - Preview Perceptual
    21 - Preview Relative
    22 - Preview Saturation
    23 - Preview Absolute
    30 - Gamut
    33 - Gamut Absolute
    40 - Perceptual with BPC
    41 - Relative Colorimetric with BPC
    42 - Saturation with BPC
    50 - BDRF Parameters
    60 - BDRF Direct
    70 - BDRF MCS Parameters
    80 - MCS connection
  +100 - Use Luminance based PCS adjustment
 +1000 - Use V5 sub-profile if present


iccApplyNamedCmm
Usage: iccApplyNamedCmm {-debugcalc} data_file_path final_data_encoding{:FmtPrecision{:FmtDigits}} interpolation {{-ENV:Name value} profile_file_path Rendering_intent {-PCC connection_conditions_path}}

  For final_data_encoding:
    0 - icEncodeValue (converts to/from lab encoding when samples=3)
    1 - icEncodePercent
    2 - icEncodeUnitFloat (may clip to 0.0 to 1.0)
    3 - icEncodeFloat
    4 - icEncode8Bit
    5 - icEncode16Bit
    6 - icEncode16BitV2

    FmtPrecision - formatting for # of digits after decimal (default=4)
    FmtDigits - formatting for total # of digits (default=5+FmtPrecision)

  For interpolation:
    0 - Linear
    1 - Tetrahedral

  For Rendering_intent:
    0 - Perceptual
    1 - Relative
    2 - Saturation
    3 - Absolute
    10 + Intent - without D2Bx/B2Dx
    20 + Intent - Preview
    30 - Gamut
    33 - Gamut Absolute
    40 + Intent - with BPC
    50 - BDRF Model
    60 - BDRF Light
    70 - BDRF Output
    80 - MCS connection
    90 + Intent - Colorimetric Only
   100 + Intent - Spectral Only
 +1000 - Use Luminance based PCS adjustment
+10000 - Use V5 sub-profile if present
iccDumpProfile
Usage: iccDumpProfile {-v} profile {tagId to dump/"ALL"}

The -v option causes profile validation to be performed.
iccRoundTrip
Usage: iccRoundTrip profile {rendering_intent=1 {use_mpe=0}}
  where rendering_intent is (0=perceptual, 1=relative, 2=saturation, 3=absolute)
iccSpecSepToTiff
Usage: SpecSep2Tiff output_file compress_flag sep_flag infile_fmt_file start_nm end_nm inc_nm {embedded_icc_profile_file}
iccTiffDump
Usage: iccTiffDump tiff_file {exported_icc_file}


iccFromXml
RefIccLabs Version 2.1.19, ICCXML Version 2.1.19
Usage: IccFromXml xml_file saved_profile_file {-noid -v{=[relax_ng_schema_file - optional]}}
iccToXml
RefIccLabs IccProfLib Version 2.1.19, ICCXML Version 2.1.19
Usage: IccToXml src_icc_profile dest_xml_file

Przykłady[edytuj]

Organizacje[edytuj]

Video[edytuj]

Skróty[edytuj]

  • CMM (Color Management Module) to komponent oprogramowania, który pobiera piksele obrazu i konwertuje je z jednej przestrzeni kolorów na inną. Istnieje kilka silników współrzędnościowych, zarówno bezpłatnych, jak i zastrzeżonych. Darmowe silniki CMM obejmują ArgyllCMS i lcms2, z których ten ostatni jest intensywnie używany przez colord i oba są używane przez gnome-color-manager.
  • CMF (Color Management Framework) to składnik oprogramowania, który umożliwia aplikacjom rejestrowanie urządzeń i profili, a także umożliwia aplikacjom wysyłanie zapytań, jakich profili użyć dla urządzenia. CMF jest komponentem wyższej warstwy logicznej silnika CMM — w ten sposób colord ma być przede wszystkim CMF, a nie w pełni funkcjonalną CMM.
  • CMS = (Color Management System) Oznacz oprogramowanie zarządzania kolorem zawarte w systemie operacyjnym ( OS) = System zarządzania kolorem

W opinii autorów skrót CMS jest mocno przeciążonym terminem (ponieważ ArgyllCMS i L[ittle]CMS zawierają je w swojej nazwie), ale w rzeczywistości nie zapewnia szkieletu systemu, z którego mogą korzystać inne aplikacje. W zwykłym użyciu zarówno LCMS, jak i colord przedstawiają niektóre części kompletnego CMS, i w ten sposób CMS jest często używany jako ogólny termin zarówno dla CMM, jak i CMF.

  • ACES = Academy Color Encoding System (ACES) color management system
  • OCIO = OpenColor.io
  • ECI = The European Color Initiative (ECI) ia a group of experts which is dedicated to advancing media-neutral colour data-processing in digital publishing systems.
  • EFI
  • Profile Connection Space (PCS)
  • CRI = Color Rendering Intent[8]

CMS[edytuj]

Zobacz również[edytuj]


Przypisy