Die Methoden der Klasse color legen Einträge in der InDesign® Farbpalette an.
Die Methoden der Klasse color legen Einträge in der InDesign® Farbpalette an. Die Definition der Farbe kann
über RGB, CMYK und LAB erfolgen.
Ist ein Farbeintrag bereits in der Palette vorhanden, bleibt der
Eintrag unverändert.
Die folgenden Farbfelder sind immer definiert und können über ihre internen Namen angesprochen werden. Standardfarben können nicht geändert werden!
Interner Name | Swatchname |
None | [Ohne] |
Registration | [Passermarken] |
Black | [Schwarz] |
Paper | [Papier] |
static int color::define_rgb(
char* cname,
int r,
int g,
int b,
int type = 1,
ItemRef createdEntry = 0)
Definiere einen neuen Farbeintrag in der InDesign®-Farbpalette. Ist in der Palette bereits ein Eintrag diesen Namens angelegt, hat der Aufruf keine Wirkung - die bereits existierende Farbe wird nicht geändert.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
cname | String oder char* | - | Name, unter dem die Farbe angelegt werden soll. Ist der Name leer, wird kein Eintrag in der Farbpalette angelegt. Bestehende Farbfelder ändern Sie mit redefine_swatch. |
r | int | - | Rotanteil der Farbe 0-255 |
g | int | - | Grünanteil der Farbe 0-255 |
b | int | - | Blauanteil der Farbe 0-255 |
type | int | 1 | Farbtyp 0 Vollton 1 Prozess |
createdEntry | ItemRef | 0 | Rückgabeparameter für den angelegten Farbeintrag. Ist die Variable ungleich 0, muss sie vorher mit item::alloc initialisiert werden. |
Erzeuge das Frabfeld 'Rot'. Existiert das Farbfeld bereits, wird es entsprechend geändert.
err_code = color::define_rgb ("Rot", 255, 0, 0);
static int color::define(
char* cname,
int r,
int g,
int b,
int type = 1,
ItemRef createdEntry = 0)
Definiere einen neuen Farbeintrag in der InDesign®-Farbpalette. Ist in der Palette bereits ein Eintrag diesen Namens angelegt, hat der Aufruf keine Wirkung - die bereits existierende Farbe wird nicht geändert.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
cname | String oder char* | - | Name, unter dem die Farbe angelegt werden soll. Ist der Name leer, wird kein Eintrag inder Farbpalette angelegt. Bestehende Farbfelder ändern Sie mit redefine_swatch. |
r | int | - | Rotanteil der Farbe 0-255 |
g | int | - | Grünanteil der Farbe 0-255 |
b | int | - | Blauanteil der Farbe 0-255 |
type | int | 1 | Farbtype 0 Vollton 1 Prozess |
createdEntry | ItemRef | 0 | Rückgabeparameter für den angelegten Farbeintrag. Ist die Variable ungleich 0, muss sie vorher mit item::alloc initialisiert werden. |
define kann als Synonym für define_rgb verwendet werden
err_code = color::define ("Rot", 255, 0, 0)
static int color::define_cmyk(
char* cname,
float c,
float m,
float y,
float k,
int type = 1,
ItemRef createdEntry = 0)
Definiere einen neuen Farbeintrag in der InDesign®-Farbpalette. Ist in der Palette bereits ein Eintrag diesen Namens angelegt, hat der Aufruf keine Wirkung - die bereits existierende Farbe wird nicht geändert.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
cname | String oder char* | - | Name, unter dem die Farbe angelegt werden soll. Ist der Name leer, wird kein Eintrag inder Farbpalette angelegt. Bestehende Farbfelder ändern Sie mit redefine_swatch. |
c | float | - | Cyananteil der Farbe in Prozent (0.0-1.0) |
m | float | - | Magentaanteil der Farbe in Prozent (0.0-1.0) |
y | float | - | Gelbanteil der Farbe in Prozent (0.0-1.0) |
k | float | - | Schwarzanteil der Farbe in Prozent (0.0-1.0) |
type | int | 1 | Farbtype 0 Vollton 1 Prozess |
createdEntry | ItemRef | 0 | Rückgabeparameter für den angelegten Farbeintrag. Ist die Variable ungleich 0, muss sie vorher mit item::alloc initialisiert werden. |
Erzeuge das CMYK-Farbfeld 'Cyan'. Existiert das Farbfeld bereits, wird es entsprechend geändert.
err_code = color::define_cmyk ("Cyan",
1.0, 0.0, 0.0, 0.0);
static int color::define_lab(
char* cname,
float l,
int a,
int b,
int type = 1,
ItemRef createdEntry = 0)
Definiere einen neuen Farbeintrag in der InDesign®-Farbpalette. Ist in der Palette bereits ein Eintrag diesen Namens angelegt, hat der Aufruf keine Wirkung - die bereits existierende Farbe wird nicht geändert.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
cname | String oder char* | - | Name, unter dem die Farbe angelegt werden soll. Ist der Name leer, wird kein Eintrag inder Farbpalette angelegt. Bestehende Farbfelder ändern Sie mit redefine_swatch. |
l | float | - | 0.0-100.0 |
a | int | - | -127 - 128 |
b | int | - | -127 - 128 |
type | int | 1 | Farbtype 0 Vollton 1 Prozess |
createdEntry | ItemRef | 0 | Rückgabeparameter für den angelegten Farbeintrag. Ist die Variable ungleich 0, muss sie vorher mit item::alloc initialisiert werden. |
Erzeuge den Farbeintrag 'Eine Farbe'
err_code = color::define_lab("Eine Farbe",
100.0, 40, 80);
static int color::count_profiles(ItemRef obj = 0, int getUsed = 1)
Anzahl der verfügbaren, eingebetteten oder benutzten Farbprofile.
Name | Typ | Default | Beschreibung |
Return | int | Anzahl der Farbprofile 0 : Fehler |
|
obj | ItemRef | 0 | Farbprofile des Objektes 0 : alle verfügbaren Farbprofile Dokumentreferenz : aktuelle/eingebettete Farbprofile des Dokumentes. Wenn Sie das aktuelle Dokument abfragen möchten, müssen Sie diese Referenz mit document::get_front holen! Bildrahmen : aktuelles/verfügbare Farbprofil(e) des Bildes Von comet_pdf wird die Angabe ignoriert und immer die Anzahl der colorprofiles.xml definierten Farbprofile zurückgegeben. |
getUsed | int | 1 | obj == 0 : Die Variable wird ignoriert Dokumentreferenz : 0 : ins Dokument eingebettete Farbprofile 1 : aktuelle Farbprofile (Das sind immer RGB und CMYK) Bildrahmen : 0 : verfügbare Farbprofile für Bilder 1 : aktuelles Farbprofile |
static int color::get_nth_profile(
ItemRef obj,
int getUsed,
int nth,
char* name,
int* class_,
int* space,
int* source,
char* file,
char* fullpath)
Farbprofil-Daten ermitteln.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
obj | ItemRef | 0 | Objektreferenz 0 : alle verfügbaren Farbprofile Dokumentreferenz : aktuelle/eingebettete Farbprofile des Dokumentes. Wenn Sie das aktuelle Dokument verändern möchten, müssen Sie diese Referenz mit document::get_front holen! Bildrahmen : aktuelles/verfügbare Farbprofil(e) des Bildes. Von comet_pdf wird die Angabe ignoriert und immer alle in colorprofiles.xml definierten Farbprofile verwendet. |
getUsed | int | 1 | obj == 0 : Die Variable wird ignoriert Dokumentreferenz : 0 : ins Dokument eingebettete Farbprofile 1 : aktuelle Farbprofile (Das sind immer RGB und CMYK) Bildrahmen : 0 : verfügbare Farbprofile für Bilder 1 : aktuelles Farbprofile Von comet_pdf wird die Angabe ignoriert und immer alle in colorprofiles.xml definierten Farbprofile verwendet. |
nth | int | - | 0-basierter Index. Werden die aktuellen Farbprofile eines Dokumentes ermittelt, ermittelt der Index 0 das RGB-Farbprofil und 1 das CMYK-Profil. |
⇨ Die folgenden Variablen werden bei fehlerfreier Funktionsausführung mit den Werten des gefundenen Farbprofiles gefüllt. Die Angabe von 0 ist erlaubt. | |||
name | String oder char* | 0 | Allokierter String für den Namen des gefundenen Profiles oder 0. |
class_ | int* | 0 | Profilklasse. Die folgenen Werte können zurückgegeben werden : 0 : Unbekannt 1 : Drucker 2 : Scanner 3 : Monitor 4 : Generisch 5 : Benannte Farbe comet_pdf gibt hier immer den Wert 0 (Unbekannt) zurück. |
space | int* | 0 | Farbraum. Die folgenen Werte können zurückgegeben werden : 0 : Unbekannt 1 : Grau 2 : RGB 3 : CMYK 4 : LAB 5 : XYZ 6 : HiFi2 7 : HiFi3 8 : HiFi4 9 : HiFi5 10 : HiFi6 11 : HiFi7 12 : HiFi8 |
source | int* | 0 | Wo ist das Profil definiert? Die folgenen Werte können zurückgegeben werden : 0 : Unbekannt 1 : Filesystem 3 : ins Dokument eingebettet 4 : Grau (InDesign®) 5 : RGB (InDesign®) 6 : CMYK (InDesign®) 7 : LAB (InDesign®) 8 : virtuell comet_pdf gibt hier immer den Wert 1 (Filesystem) zurück. |
file | String oder char* | 0 | Allokierter String für den Dateipfad des Profiles |
fullpath | String oder char* | 0 | Allokierter String für den vollständigen Dateipfad des Profiles |
Ermitttle alle aktuell verfügbaren Farbprofile.
int main () { char cname [2000]; char cfile [2000]; char cpath [2000]; int cclass; int cspace; int csource; int profiles = color::count_profiles (0, 1); int i;
for (i = 0; i < profiles; i++) { color::get_nth_profile (0, 1, i, cname, &cclass, &cspace, &csource, cfile, cpath); wlog ("", "Color profile %d\t: %d %d '%s' '%s'\n", i, cclass, cspace, cname, cfile); }
return 0; }
Ermitttle die aktuellen und eingebetteten Farbprofile eines Dokumentes.
int main () { ItemRef docref = document::get_front (); char cname [2000]; char cfile [2000]; char cpath [2000]; int cclass; int cspace; int csource; int profiles; int i;
wlog ("", "Used profiles\n"); profiles = color::count_profiles (docref, 1); for (i = 0; i < profiles; i++) { color::get_nth_profile (docref, 1, i, cname, &cclass, &cspace, &csource, cfile, cpath); wlog ("", "Color profile %d\t: %d %d '%s'\n", i, cclass, cspace, cname); }
wlog ("", "Embedded profiles\n"); profiles = color::count_profiles (docref, 0); for (i = 0; i < profiles; i++) { color::get_nth_profile (docref, 0, i, cname, &cclass, &cspace, &csource, cfile, cpath); wlog ("", "Color profile %d\t: %d %d '%s'\n", i, cclass, cspace, cname); } }
Ermitttle das aktuelle und alle verfügbaren Farbprofile für ein Bild.
int main () { char cname [2000]; char cfile [2000]; char cpath [2000]; int cclass; int cspace; int csource; int profiles; int i;
wlog ("", "Current color profile\n"); profiles = color::count_profiles (gFrame, 1); for (i = 0; i < profiles; i++) { color::get_nth_profile (gFrame, 1, i, cname, &cclass, &cspace, &csource, cfile, cpath); wlog ("", "Color profile %d\t: %d %d '%s'\n", i, cclass, cspace, cname); }
wlog ("", "Available color profiles\n"); profiles = color::count_profiles (gFrame, 0); for (i = 0; i < profiles; i++) { color::get_nth_profile (gFrame, 0, i, cname, &cclass, &cspace, &csource, cfile, cpath); wlog ("", "Color profile %d\t: %d %d '%s'\n", i, cclass, cspace, cname); }
return 0; }
static int color::set_profile(
ItemRef obj,
char* profileName,
int space,
int renderPrio = -1,
int imageRenderPrio = -1,
int postTransparenzPrio = -1)
Setze Farbprofil und Farbeinstellungsprioritäten für Dokumente und Bilder. Mit der Funktion können die folgenden Werte geändert werden :
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
obj | ItemRef | - | Dokument oder Bildrahmen |
profileName | String oder char* | - | Gültiger Name eines Farbprofiles. Ist obj ein Dokument, können nur RGB- und CMYK-Profile gesetzt
werden. "ignore" : Farbprofil nicht ändern |
space | int | - | Farbraum. Bei Bildern unbenutzt, sonst 0 : RGB 1 : CMYK |
renderPrio | int | -1 | Farbflächenpriorität/Renderpriorität. Folgende Werte sind erlaubt : 0 : Perzeptiv 1 : Sättigung 2 : relativ farbmetrisch 3 : absolut farbmetrisch 20 : Farb- Dokumentbildpriorität verwenden |
imageRenderPrio | int | -1 | Standardbildprorität Folgende Werte sind erlaubt : 0 : Perzeptiv 1 : Sättigung 2 : relativ farbmetrisch 3 : absolut farbmetrisch 20 : Farb- Dokumentbildpriorität verwenden |
postTransparenzPrio | int | -1 | Priorität nach Transparenzberechnung Folgende Werte sind erlaubt : 0 : Perzeptiv 1 : Sättigung 2 : relativ farbmetrisch 3 : absolut farbmetrisch 20 : Farb- Dokumentbildpriorität verwenden |
Ändern des Farbprofiles eines Dokumentes.
int main () { ItemRef docref = document::get_front (); int res;
res = color::set_profile (docref, "Display", 0); res = color::set_profile (docref, "Euroscale Coated v2", 1, 1, 2, 3);
return 0; }
ändern des Farbprofiles eines Bildes.
int main ()
{
color::set_profile (gFrame, "CIE RGB", 0, 3);
return 0;
}
static int color::count_swatches(ItemRef docRef)
Anzahl der sichtbaren Farbfelder eines Dokumentes.
Name | Typ | Default | Beschreibung |
Return | int | Anzahl der sichtbaren Farbfelder eines Dokumentes 0 : Fehler |
|
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
Hier ein Beispiel zur Anwendung von Swatches:
#include "internal/types.h"
int main () { int i; int space; int type; char name [512]; float colors [4];
wlog ("", "--------------- Swatches of current document ---------------\n"); for (i = 0; i < color::count_swatches (0); i++) { strcpy (name, color::get_nth_swatch (0, i)); space = color::get_space (0, name); type = color::get_type (0, name); color::get_colors (0, name, colors, colors+1, colors+2, colors+3);
wlog ("", "%d : %s\n", i, name); if (space == kColorTypeRGB) wlog ("", "\t ColSpace : RGB\n"); else if (space == kColorTypeCMYK) wlog ("", "\t ColSpace : CMYK\n"); else if (space == kColorTypeLAB) wlog ("", "\t ColSpace : Lab\n"); else wlog ("", "\t ColSpace : %d\n", color::get_space (0, name));
wlog ("", "\t Spot : %d\n", color::is_spot (0, name)); wlog ("", "\t Locked : %d\n", color::is_locked (0, name)); wlog ("", "\t Reserv : %d\n", color::is_reserved (0, name));
if (type == kSwatchTypeBaseColor) wlog ("", "\t Type : Base color\n"); else if (type == kSwatchTypeTintColor) wlog ("", "\t Type : Tint color\n"); else if (type == kSwatchTypeGradient) wlog ("", "\t Type : Gradient\n"); else wlog ("", "\t Type : %d\n", type);
wlog ("", "\t Cols : %f, %f, %f, %f\n", colors[0], colors[1], colors[2], colors[3]); }
return 0; }
static char* color::get_nth_swatch(ItemRef docRef, int n)
Name des n-ten sichtbaren Farbfeldes eines Dokumentes.
Name | Typ | Default | Beschreibung |
Return | char* | Name des n-ten sichtbaren Farbfeldes eines Dokumentes "" : Fehler Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
n | int | - | 0-basierter Index des Farbfeldes |
static int color::get_space(ItemRef docRef, char* swatchName)
Farbraum eines Farbfeldes.
Name | Typ | Default | Beschreibung |
Return | int | kColorTypeInvalid : Fehler kColorTypeFromDisk kColorTypeEmbeddedInImage kColorTypeEmbeddedInDocument kColorTypeGray kColorTypeRGB : RGB-Farbfeld kColorTypeCMYK : CMYK-Farbfeld kColorTypeLAB : Lab - Farbfeld kColorTypeVirtual |
|
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
swatchName | String oder char* | - | Name des Farbfeldes oder Standardfarbe. |
static float color::get_tint(ItemRef docRef, char* swatchName)
Farbdichte eines Farbfeldes
Name | Typ | Default | Beschreibung |
Return | float | 0.0 - 1.0 comet_pdf : Immer 1.0 |
|
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
swatchName | String oder char* | - | Name des Farbfeldes oder Standardfarbe |
static int color::get_colors(
ItemRef docRef,
char* swatchName,
float & c1,
float & c2,
float & c3,
float & c4)
Farbanteile eines Farbfeldes
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
swatchName | String oder char* | - | Name des Farbfeldes oder Standardfarbe |
c1, c1, c3, c4 | float*, float*, float*, float* | -, -, -, - | Farbwerte 0.0 - 255.0 : RGB. Es sind nur die Werte c1, c2, c3 belegt 0.0 - 1.0 : CMYK 0.0-100, -127.0-128, -127-128.0 : Lab. Es sind nur die Werte c1, c2, c3 belegt alle Werte < 0.0 : Farbe [Ohne] Beachten Sie bitte, dass die Rückgabevariablen in jedem Fall float-Pointer sind! |
static int color::is_spot(ItemRef docRef, char* swatchName)
Ist das Farbfeld eine Volltonfarbe?
Name | Typ | Default | Beschreibung |
Return | int | 0 : Nein 1 : Ja, Volltonfarbe |
|
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
swatchName | String oder char* | - | Name des Farbfeldes oder Standardfarbe |
static int color::is_locked(ItemRef docRef, char* swatchName)
Ist das Farbfeld gesperrt?
Name | Typ | Default | Beschreibung |
Return | int | 0 : Nein 1 : Ja, gesperrt comet_pdf : Immer 0 |
|
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
swatchName | String oder char* | - | Name des Farbfeldes oder Standardfarbe |
static int color::is_reserved(ItemRef docRef, char* swatchName)
Ist das Farbfeld reserviert?
Name | Typ | Default | Beschreibung |
Return | int | 0 : Nein 1 : Ja, reserviert comet_pdf : Immer 0 |
|
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
swatchName | String oder char* | - | Name des Farbfeldes oder Standardfarbe |
static int color::get_type(ItemRef docRef, char* swatchName)
Typ eines Farbfeldes.
Name | Typ | Default | Beschreibung |
Return | int | kSwatchTypeNone : error kSwatchTypeBaseColor Standard-Swatch kSwatchTypeTintColor kSwatchTypeMixedInkColor kSwatchTypeLinkedMixedInkColor kSwatchTypeMixedInkParent kSwatchTypeGradient kSwatchTypeBlackBoxPaint kSwatchTypeOther |
|
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
swatchName | String oder char* | - | Name des Farbfeldes oder Standardfarbe |
static int color::redefine_swatch(
ItemRef docRef,
char* swatchName,
int targetSpace,
float c1,
float c2,
float c3,
float c4,
int is_process = 1)
Definition eines Farbfeldes ändern.
Es können nur Farbfelder vom Typ kSwatchTypeBaseColor geändert werden. Den Typ eines Farbfeldes ermitteln Sie mit Hilfe der Funktion color::get_type. Beachten Sie außdem, dass es zu Fehlern kommen kann, wenn Sie reservierte Farbfelder ändern wollen!
Bitte beachten Sie : InDesign Server ® kann die Funktion
seit Version 2021 nicht mehr ausführen. Der Fehler liegt in InDesign Server selbst. Wir haben leider keine Möglichkeit, dieses Problem zu umgehen.
Der Adobe-Support schreibt dazu "Only awkward way available would be to delete using desktop application.
I wouldn't call it a workaround though.
So, as of now, there is no workaround. Thank you.
Wann das Problem gelöst sein wird, können wir leider nicht sagen.
Das Letzte, was wir vom Adobe-Support zum Thema gehört haben war
"Yes, this problem is a known issue and has already been reported by few other partners as well.
We are pushing to get this bug fixed within next release. I'll keep you informed as soon as fix is available."
Das war am 28. Nov 2022. In InDesign Server ® 2023 besteht das Problem jedenfalls nach wie vor.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Dokument 0 : aktuelles Frontdokument |
swatchName | String oder char* | - | Name des Farbfeldes. Die Standardfarben können von der Funktion nicht geändert werden! |
targetSpace | int | - | Farbraum der Farbwerte c1-c4. Folgende Farbräume können verwendet werden: kColorTypeRGB kColorTypeCMYK kColorTypeLAB |
c1, c1, c3, c4 | float, float, float, float | -, -, -, - | Neue Farbwerte 0.0 - 255.0 : RGB. Es werden nur die Werte c1, c2, c3 verwendet. 0.0 - 1.0 : CMYK 0.0-100, -127.0-128, -127-128.0 : Lab. Es werdne nur die Werte c1, c2, c3 verwendet. |
is_process | int | - | Prozessfarbe oder Volltonfarbe? 1 : Normale Prozessfarbe 0 : Volltonfarbe |
Ändere die Farbe des Farbfeld 'Rot' in helles Orange. Existiert das Farbfeld noch nicht, wird es angelegt. Achten Sie darauf, dass die Farbwerte float-Zahlen sind und das alle vier Farbvariablen c1, ... c4 definiert sind (auch wenn c4 nicht benötigt wird!).
color::redefine_swatch (0, "Rot", kColorTypeRGB, 255.0, (float)123, 77.77, 0.0);
Alphabetic index HTML hierarchy of classes or Java