2024 年日本 PHP 研討會

Imagick::setImageFormat

(PECL imagick 2, PECL imagick 3)

Imagick::setImageFormat設定特定影像的格式

說明

public Imagick::setImageFormat(字串 $format): 布林值

設定序列中特定影像的格式。

參數

格式

影像格式的字串表示。格式支援取決於 ImageMagick 的安裝。

回傳值

成功時回傳 true

新增註記

使用者貢獻的註記 7 則註記

nathan at crause dot name
14 年前
對於那些完全被這個類別的說明文件(包括被刪除的註記,可能也包括這個)搞糊塗的人來說,「setXXX」和「setImageXXX」之間的差異似乎完全取決於影像的載入方式。

如果影像是在物件建構時載入的,則似乎應該使用「setXXX」;如果是在之後載入的(例如透過「readImageBlob」),則應該使用「setImageXXX」。

然而,這並不規律。例如

<?php
$image
= new Imagick();

$image->setResolution(300, 300);
$image->readImageBlob(...);
// 將輸出轉換為 JPEG
$image->setImageFormat('jpeg');
$image->setImageCompressionQuality(90);
?>

請注意,我們使用的是「setResolution」而不是「setImageResolution」。
optymizer at yahoo dot com
17 年前
先前的範例對我來說無效。我收到一個錯誤,指出 IMagick 物件無法轉換為字串。

此範例使用 IMagick::getImageBlob() 方法來正確輸出已轉換影像的內容

function getImage($filename)
{
$image->readImage($filename);
$image->setImageFormat("png");
header("Content-type: image/png");
echo $image->getImageBlob();
}

希望這個範例有幫助!
layzee dot dk at gmail dot com
11 年前
此方法僅影響個別已載入/建構的影像。

要設定整個物件的格式,請使用 Imagick::setFormat 方法。例如,載入 TIFF 檔案,然後在 Imagick 物件上使用 setFormat('pdf'),接著使用 writeImagesFile('foo.pdf') 或 getImagesBlob()。
markus dot s dot schmitz at gmail dot com
11 年前
如果您使用 writeFile 或 writeFiles 卻未設定格式,則會根據 writeFile 參數中使用的副檔名自動設定格式。
andy at live dot nl
15 年前
我在使用 $im->setImageFormat('jpeg'); 時遇到問題。
當我將 PDF 轉換為 JPG 縮圖時,影像顏色反轉了。
必須新增 $im->setImageColorspace(255); 才能解決此問題。

<?php
// 讀取第一頁
$im = new imagick( 'test.pdf[ 0]' );

// 轉換成 jpg 格式
$im->setImageColorspace(255);
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setCompressionQuality(60);
$im->setImageFormat('jpeg');

// 調整大小
$im->resizeImage(290, 375, imagick::FILTER_LANCZOS, 1);

// 將圖片寫入伺服器
$im->writeImage('thumb.jpg');
$im->clear();
$im->destroy();
?>
Devo
17 年前
格式列表可以在這裡找到:https://imagemagick.dev.org.tw/script/formats.php

標有 W 的格式可以使用 writeImage 輸出到檔案(當然,功能取決於您的特定安裝)。

例如:

<?php
// 從 image.jpg 建立新的 imagick 物件
$im = new Imagick( "image.jpg" );

// 將格式更改為 png
$im->setImageFormat( "png" );

// 將圖片以 png 格式輸出到瀏覽器
header( "Content-Type: image/png" );
echo
$im;

// 或者您可以將圖片輸出到檔案:
//$im->writeImage( "image.png" );
?>
barclay[dot]loftus[at]gmail.com
16 年前
關於圖片輸出的另一個注意事項。 對於 jpeg 圖片,品質是由 Imagick::setCompressionQuality() 調整的。

<?php
$img
->setCompressionQuality(90);
$img->setImageFormat('jpeg');
header('Content-type: image/jpg');
echo
$img;
?>
To Top