mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:12:46 +00:00 
			
		
		
		
	LibPDF: Add support for the CalRGB ColorSpace
This isn't tested all that well, as the PDF I am testing with only uses it for black (which is trivial). It can be tested further when LibPDF is able to process more complex PDFs that actually use this color space non-trivially.
This commit is contained in:
		
							parent
							
								
									7b4e36bf88
								
							
						
					
					
						commit
						006f5498de
					
				
					 3 changed files with 205 additions and 0 deletions
				
			
		|  | @ -517,6 +517,25 @@ RefPtr<ColorSpace> Renderer::get_color_space(const Value& value) | |||
|         return DeviceRGBColorSpace::the(); | ||||
|     if (name == CommonNames::DeviceCMYK) | ||||
|         return DeviceCMYKColorSpace::the(); | ||||
|     if (name == CommonNames::Pattern) | ||||
|         TODO(); | ||||
| 
 | ||||
|     // The color space is a complex color space with parameters that resides in
 | ||||
|     // the resource dictionary
 | ||||
|     auto color_space_resource_dict = m_page.resources->get_dict(m_document, CommonNames::ColorSpace); | ||||
|     if (!color_space_resource_dict->contains(name)) | ||||
|         TODO(); | ||||
| 
 | ||||
|     auto color_space_array = color_space_resource_dict->get_array(m_document, name); | ||||
|     name = color_space_array->get_name_at(m_document, 0)->name(); | ||||
| 
 | ||||
|     Vector<Value> parameters; | ||||
|     parameters.ensure_capacity(color_space_array->size() - 1); | ||||
|     for (size_t i = 1; i < color_space_array->size(); i++) | ||||
|         parameters.unchecked_append(color_space_array->at(i)); | ||||
| 
 | ||||
|     if (name == CommonNames::CalRGB) | ||||
|         return CalRGBColorSpace::create(m_document, move(parameters)); | ||||
| 
 | ||||
|     TODO(); | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Matthew Olsson
						Matthew Olsson