PHP 8.4.2 Released!

Imagick::setColorspace

(PECL imagick 3)

Imagick::setColorspaceSet colorspace

Description

public Imagick::setColorspace(int $COLORSPACE): bool

Sets the global colorspace value for the object. This method is available if Imagick has been compiled against ImageMagick version 6.5.7 or newer.

Parameters

COLORSPACE

One of the COLORSPACE constants

Return Values

Returns true on success.

Errors/Exceptions

Throws ImagickException on error.

add a note

User Contributed Notes 2 notes

up
1
simonjjarrett at gmail dot com
4 years ago
This method has to be called BEFORE any files are loaded into the Imagick object.

By default, Imagick will incorrectly read CMYK PDFs - it will read each channel as a greyscale page resulting in 4 times the number of pages. By specifying the desired colorspace (usually SRGB) before reading the file, GhostScript will automatically convert it.

<?php
$im
= new Imagick();

// set the sampling resolution
$im->setResolution(200,200);

// set the desired format
$im->SetColorspace(Imagick::COLORSPACE_SRGB);

$im->readimage($file['tmp_name']);
?>
up
-2
T
9 years ago
Right now this function doesn't appear to do anything, ref: http://stackoverflow.com/q/10739822/2685496

As mentioned in the answer, modulateImage works fine as a replacement for converting to gray scale.

<?php

$image
= new Imagick("input.jpg");

$image->modulateImage(100, 0, 100);

$image->writeImage("output.jpg");

$image->clear();

?>
To Top