【问题标题】:Transparent PNG imagemagick passthru透明PNG imagemagick passthru
【发布时间】:2012-03-10 20:53:54
【问题描述】:

我有这个代码。它应该创建一个透明的 PNG,但它的输出是黑色背景的 PNG。在 CentOS 上。

<?php
header( 'Content-Type: image/png' );
passthru("convert -background transparent -fill red -pointsize 72 -font TR.Matisse.ITC.TTF -gravity Center label:'Font Test' png:-");
?>

这在 ubuntu 终端上完美运行:

convert -background transparent -fill red -pointsize 72 -font TR.Matisse.ITC.TTF -gravity Center label:'Font Test' png.png

那么如何通过从 PHP 调用系统命令使其透明(并且没有黑色遮罩)?

【问题讨论】:

  • 两个命令字符串的结尾不同。会不会是这个问题?
  • @vascowhite。没有“passthru”命令直接将结果提供给 php。终端命令只是创建并保存 png。
  • 为了解决这个问题,我会将该命令剥离到最低限度,这将做一些我能看到的事情。一旦开始工作,一次添加其他功能一项。我不熟悉你想要做什么,但我就是这样做的。
  • 我尝试了很多东西。没有任何效果。
  • 黑色哑光透明?你需要做出决定。

标签: php imagemagick transparency


【解决方案1】:

这不是 ImageMagick 的正确透明命令吗:

convert -transparent <SomeColor> -fill red -pointsize 72 -font TR.Matisse.ITC.TTF -gravity Center label:'Font Test' png.png

或者使用 Alpha 通道:

convert -alpha transparent -fill red -pointsize 72 -font TR.Matisse.ITC.TTF -gravity Center label:'Font Test' png.png

【讨论】:

  • 在命令行convert -background transparent -fill red -pointsize 72 -gravity Center label:"Font Test" C:\wamp\www\xxyyzz.png 可以正常工作,但不能在 php 中使用
  • 是的,但是该命令是在 CentOS 服务器的命令行中工作还是在 Ubuntu 中工作?
【解决方案2】:

尝试使用 exec() 并将文件保存到磁盘,然后查看它是否是正确的图像。您可能会发现问题出在 php 和 passthru 上。

【讨论】:

    猜你喜欢
    • 2011-12-04
    • 2012-09-15
    • 2012-11-02
    • 2020-10-22
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    相关资源
    最近更新 更多