gpt4 book ai didi

php - 通过 Imagick 创建/保存 DirectDraw 表面 (DDS) 图像

转载 作者:行者123 更新时间:2023-12-05 07:57:27 27 4
gpt4 key购买 nike

这是我第一次使用 PHP Imagick 并遇到了问题。

我正在创建一个网站模块,用户可以在其中上传需要转换为包含上传图像作为 DDS 纹理的加密文件类型的图像。

所以我需要做的是将上传的图片转换为dds文件格式。

代码:

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

问题:输出文件始终是一个空的 0 字节文件。

需要转换的PNG:test.png

DDS 需要输出:test.dds

也许我需要其他版本的 Imagick 或 ImageMagick?

我的版本是:

  1. PHP 5.5.15
  2. Imagick 3.1.2-5.5-ts-vc11-x86
  3. ImageMagick 6.8.4-0-Q16-x86

我目前正在 Windows 8.1 x64 上进行测试。

如有任何建议/帮助,我们将不胜感激。

编辑: 编辑了问题,希望它现在清楚我想要实现的目标。

已解决:问题是 ImageMagick 的版本不支持 DDS 写入。

已安装 ImageMagick 6.8.6-10-Q16-x86,因为在该版本中添加了 DDS 写入支持(较新的版本导致无法加载 imagick)。

我使用和工作的当前版本:

  1. PHP 5.5.15
  2. Imagick 3.1.2-5.5-ts-vc11-x86
  3. ImageMagick 6.8.6-10-Q16-x86

最佳答案

从上面的调试来看,问题是你的ImageMagick版本不支持写入DXT3压缩的DDS文件。

解决这个问题的选项是:

  1. 使用不同的压缩格式 - DXT5 可能没问题,但与 DXT3 不完全相同。

  2. 升级到支持以 DXT3 格式写入的较新版本的 ImageMagick 和 Imagick。

关于php - 通过 Imagick 创建/保存 DirectDraw 表面 (DDS) 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27197644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com