首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Imagick创建/保存DirectDraw曲面图像

利用Imagick创建/保存DirectDraw曲面图像
EN

Stack Overflow用户
提问于 2014-11-29 00:38:34
回答 1查看 1.9K关注 0票数 3

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

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

所以我需要做的是把上传的图像转换成dds文件格式。

代码:

代码语言:javascript
复制
$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

我目前正在Windows8.1 x64上进行测试。

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

编辑:编辑了这个问题,希望我现在能明白我想要达到的目标。

解决了问题:问题是ImageMagick的版本不支持直接数字频率合成器的编写。

安装了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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-29 14:58:35

从上面的调试来看,问题是您的ImageMagick版本不支持编写DXT3压缩的直接合成文件。

解决这一问题的备选办法是:

  1. 使用不同的压缩格式-- DXT5可能是可以的,但它与DXT3不完全相同。
  2. 升级到支持以ImageMagick格式编写的较新版本的DXT3和Imagick。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27197644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档