# ColorSpace Class

> Base class for all color spaces.

- Product: Adobe PDF Library 21
- Language: Modern C++
- Version: 21.4.0
- HTML page: https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/ColorSpace
- Version index: https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/llms.txt

```cpp
class ColorSpace
```

**Namespace:** `datalogics_interface`

**Derived classes:** [`CalGrayColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/CalGrayColorSpace.md), [`CalRGBColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/CalRGBColorSpace.md), [`DeviceNColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/DeviceNColorSpace.md), [`ICCBasedColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/ICCBasedColorSpace.md), [`IndexedColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/IndexedColorSpace.md), [`LabColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/LabColorSpace.md), [`NamedColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/NamedColorSpace.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/SeparationColorSpace.md)

## Description

Base class for all color spaces.

**Referenced by:** [`AxialShadingPattern`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/AxialShadingPattern.md), [`Color`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/Color.md), [`Content`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/Content.md), [`DeviceNColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/DeviceNColorSpace.md), [`DrawParams`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/DrawParams.md), [`ICCBasedColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/ICCBasedColorSpace.md), [`Image`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/Image.md), [`IndexedColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/IndexedColorSpace.md), [`PageImageParams`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/PageImageParams.md), [`SeparationColorSpace`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/SeparationColorSpace.md), [`ShadingPattern`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/ShadingPattern.md)

**Uses types:** [`PDFObject`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/PDFObject.md)

## Constructors

### ColorSpace

```cpp
datalogics_interface::ColorSpace::ColorSpace(ColorSpace &&) noexcept
```

*constructor*

**Parameters**

- (unnamed) ([`ColorSpace &&`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/ColorSpace.md))

### ~ColorSpace

```cpp
virtual datalogics_interface::ColorSpace::~ColorSpace()
```

*destructor*

## Methods

### get_name

```cpp
std::string datalogics_interface::ColorSpace::get_name() const
```

**Returns:** `std::string`

The name of the color space. A named color space may be named something like DeviceRGB. More complicated color spaces may have a name like Indexed or ICCBased.

### get_num_components

```cpp
int datalogics_interface::ColorSpace::get_num_components() const
```

**Returns:** `int`

The number of color components.

The number of components in the color space.

For example, DeviceGray has 1 component, DeviceRGB has 3, and DeviceCMYK has 4.

### get_pdf_object

```cpp
std::unique_ptr< PDFObject > datalogics_interface::ColorSpace::get_pdf_object() const
```

**Returns:** [`std::unique_ptr< PDFObject >`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/PDFObject.md)

The PDFObject associated with the color space.

Get the PDFObject associated with the color space. This may be a PDFName, PDFDict, PDFStream, or PDFArray.

### operator=

```cpp
ColorSpace & datalogics_interface::ColorSpace::operator=(ColorSpace &&) noexcept
```

**Parameters**

- (unnamed) ([`ColorSpace &&`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/ColorSpace.md))

**Returns:** [`ColorSpace &`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/ColorSpace.md)

### operator==

```cpp
virtual bool datalogics_interface::ColorSpace::operator==(const ColorSpace &other) const
```

**Parameters**

- `other` ([`const ColorSpace &`](https://docs.datalogics.com/apdfl21/ModernCPP/21.4.0/class/ColorSpace.md)): The ColorSpace to compare against.

**Returns:** `bool`

true if the two color spaces are equal, false otherwise.

Test for equality.

This works best for named color spaces.

More complex color spaces (such as ICCBased) do not support equality testing and will always return false.

### to_string

```cpp
std::string datalogics_interface::ColorSpace::to_string() const
```

**Returns:** `std::string`

A string describing this ColorSpace.

Convert a ColorSpace to a string representation.
