Imagick缺少设置参数的PNG到DDS

问题描述

我想像这个例子一样使用PHP代码

<?
$img = new Imagick('test.png'); //Load the uploaded image
$img->setformat('dds'); //Set the format to dds
$img->setimageCompression(Imagick::COMPRESSION_DXT5); //Set compression method
$img->writeimage('test.dds'); //Write/save the dds texture
?>

但是我找不到集群拟合true | false和Mipmaps = X的缺失集合参数 所以我坚持使用PHP exec,这迫使我先保存png,以便exec()可以访问它以将其转换为dds。

exec("convert -format dds -define dds:compression=dxt5 -define dds:mipmaps=6 -define dds:cluster-fit=true ".$ziptempDir.$fileName." ".$ziptempDir.$fileNameDDS."");

我无法在PHP.net上找到参数,因此它们是否不适用于PHP imagick,如果是这样,是否有人像第一个示例一样知道如何获取/翻译它们以使用它?

谢谢

解决方法

以下是带有mipmaps x和cluster-fit true | false的setOptions的工作代码,该代码未在php.net上描述

    $imgSkinFull->setImageCompression(Imagick::COMPRESSION_DXT5);
    $imgSkinFull->setOption("dds:mipmaps",6);
    $imgSkinFull->setOption("dds:cluster-fit",true);
    $imgSkinFull->setformat('dds');
    $imgSkinFull->writeimage($ziptempDir.$fileNameDDS);
    $imgSkinFull->destroy();