RecolorDocument
Kolor
Opis
Przenosi wszystkie strony dokumentu do jednej przestrzeni kolorów
Składnia
Delphi
Function TPDFlib.RecolorDocument(TargetSpace: Integer): Integer;Parametry
| TargetSpace | 1 szarość, 2 RGB, 3 CMYK |
|---|
Wartości zwracane
| Count | Liczba kolorów przekonwertowanych w całym dokumencie |
|---|---|
| 0 | Nic nie wymagało konwersji albo TargetSpace było poza zakresem od 1 do 3. Strona, której kolory znajdują się już w przestrzeni docelowej, zachowuje pierwotne bajty |
Uwagi
Konwersja używa zwykłej arytmetyki urządzenia, a nie zarządzania kolorami: dokument zawierający tylko DeviceRGB nie ma profilu, przez który można konwertować. RGB jest przekształcane w szarość według wag luminancji ITU-R BT.601, a CMYK zgodnie z ISO 32000-1 §8.6.4.4, czyli tak samo jak robi to przeglądarka podczas wyświetlania dokumentu CMYK na ekranie
Kolory ustawione za pomocą przestrzeni ICCBased, Separation, Indexed lub Pattern pozostają bez zmian. Odczyt ich składowych bez profilu zmieniłby wygląd strony zamiast go zachować, dlatego taki dokument jest konwertowany tylko w częściach, które bezpośrednio wskazują przestrzeń urządzenia
Obrazy rysowane przez stronę również są konwertowane, gdy obraz ma osiem bitów na składnik, przestrzeń kolorów urządzenia i brak kompresji albo zwykłą kompresję Flate. Obraz JPEG lub faksowy wymagałby ponownego zakodowania, co jest inną operacją niż konwersja kolorów, dlatego zachowuje własne bajty
Obraz Indexed jest zamiast tego konwertowany przez tabelę kolorów, dzięki czemu próbki zachowują dotychczasowe indeksy. Ta ścieżka nie zależy od sposobu pakowania lub kompresji próbek, dlatego zrzut ekranu albo wykres z paletą można przekonwertować mimo braku możliwości przepisania próbek
Gradienty są konwertowane wraz z funkcjami, które za nimi stoją, dlatego przestrzeń i punkty zatrzymania zawsze pozostają zgodne. Gradient zbudowany z funkcji próbkowanej lub PostScript zachowuje własne kolory, podobnie jak typy cieniowania siatkowego, które przechowują kolory w strumieniu, a nie w funkcji
Miękkie maski i maski szablonowe pozostają bez zmian. Oba rodzaje są odczytywane jako pokrycie, a nie kolor, a konwersja spowodowałaby wyświetlenie maski jako obrazu
Geometria, tekst, przycinanie i wszystkie pozostałe operatory są zapisywane bez zmian
Wybrana strona jest przywracana po powrocie z wywołania
Przykład
// Send a mixed-colour document to a press that expects CMYK
PDF.LoadFromFile('brochure.pdf', '');
Converted := PDF.RecolorDocument(3);
PDF.SaveToFile('brochure-cmyk.pdf');