PHP Conference Japan 2024

Imagick::setColorspace

(PECL imagick 3)

Imagick::setColorspace設定色彩空間

說明

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

設定物件的全局色彩空間值。如果 Imagick 編譯時使用了 ImageMagick 6.5.7 或更新版本,則可以使用此方法。

參數

COLORSPACE

COLORSPACE 常數 之一

傳回值

成功時傳回 true

錯誤/例外

發生錯誤時拋出 ImagickException。

新增筆記

使用者貢獻的筆記 2 則筆記

simonjjarrett at gmail dot com
4 年前
這個方法必須在任何檔案載入到 Imagick 物件**之前**呼叫。

預設情況下,Imagick 會錯誤地讀取 CMYK PDF 檔案 — 它會將每個通道讀取為灰階頁面,導致頁數增加 4 倍。藉由在讀取檔案之前指定所需的色彩空間(通常是 SRGB),GhostScript 將會自動轉換它。

<?php
$im
= new Imagick();

// 設定取樣解析度
$im->setResolution(200,200);

// 設定所需的格式
$im->SetColorspace(Imagick::COLORSPACE_SRGB);

$im->readimage($file['tmp_name']);
?>
T
9 年前
目前看來,這個函式似乎沒有作用,參考:http://stackoverflow.com/q/10739822/2685496

如同答案中提到的,`modulateImage` 可以作為轉換為灰階的替代方案,並且運作良好。

<?php

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

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

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

$image->clear();

?>
To Top