MODxでスニペットを呼び出して動的画像(imagepngを使用)を作成しようと思った。
うまくいかない。
php単独だとうまくいく
ソースは以下(よくWebで紹介されているもの:ここ参考


<?php
    //出力文字の取得
    $setstring = "aaaa";
    //画像の作成
    $img = imagecreate(100, 20);
    //色の作成(背景色)
    $backcol = imagecolorallocate($img, 160, 160, 160);
    //背景色を塗る
    imagefilledrectangle($img, 0, 0, 200, 80, $backcol);
    //色の作成(文字)
    $col = imagecolorallocate($img, 255, 255, 255);
    //文字を書く
    imagestring($img, 2, 10, 4, $setstring, $col);
    //画像出力
    header("Content-type: image/png");
    header("Cache-control: no-cache");
    imagepng($img);
    //画像の消去(メモリの解放)
    imagedestroy($img);
?>

こいつをそのままスニペット(imagecreate)化して

<img title="TEST" src="[!imagecreate!]" alt="TEST" width="100" height="20" />

というコンテンツを作成したが表示されない。
以前、javascriptで同じように処理を作成した時はうまくいったのに…
あることに気づいた。スニペットが先に処理されているのを忘れていた。
ということで、コンテンツを2つ作成して順次処理させればOKだ。

<img title="TEST" src="/modx/imagecreatedummy.html" alt="TEST" width="100" height="20" />

imagecreatedummy.htmlの内容

[!imagecreate!]

phpのソースを作成して呼び出せばもちろんOKなのだが...
(それじゃMODxのスニペット化の意味がないか。処理は同じだが...)