使用PHP和Imagick将PNG转换为DDS

时间:2017-10-07 14:44:11

标签: php imagemagick imagick

用户可以在我们的网页上为我们玩的游戏创建自己的皮肤。创建他们的皮肤之后,我必须将它们转换为DDS文件。因此,如果Imagick可以直接转换为BC3 DXT5 DDS文件,我会节省很多时间。

$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

要转换的PNG:test.png
已转换的DDS:test.dds

如果我使用上面的代码转换PNG图像,我会得到一个dds文件,它看起来像一个混乱的十六进制编辑器。标题完全破碎了。 我也无法在Photoshop中打开dds文件(使用dds插件),因为Photoshop说"无法打开文件,因为Filesformat无法解释"。

我使用的版本:

PHP版本7.1.6-nmm1(其他PHP版本不做任何更改)
imagick模块版本3.4.3RC1
Imagick使用ImageMagick版本编译ImageMagick 6.7.7-10 2016-11-29 Q16
使用ImageMagick库版本Imagegagick Imagick 6.7.7-10 2017-07-31 Q16

我使用PHP版本,因为我只有一个普通的Webspace。代码没有在2个不同的Webspaces上工作,所以我认为Imagick中的dds转换是坏的。

PHP代码是错误的还是Imagick DDS坏了。 任何想法?

0 个答案:

没有答案