此問題已被詢問(請參閱下面的鏈接),但沒有答案的工作。所以我有這個ImageMagick腳本,我用它來着色PNG,它工作的很好,但問題是它實際上在服務器上生成文件。我想要的就是GD在圖像處理方面做了什麼,然後在不實際保存圖像的情況下顯示它。PHP:顯示ImageMagick圖像而不保存到服務器,如GD
這是我用於着色圖像的ImageMagick代碼。此代碼執行轉換並在服務器上生成最終映像的額外文件。
<?php
$source = "src.png";
$final = "FINAL.png";
$color = "#00FF00";
exec("convert $source -threshold 100% +level-colors '$color', $final");
?>
這裏是一個GD示例代碼直接做圖像處理和顯示的最終圖像不保存額外的圖像到服務器:
<?php
header('Content-Type: image/png');
$source = "src.png";
$im = imagecreatefrompng($source);
imagefilter($im, IMG_FILTER_GRAYSCALE);
imagepng($im);
imagedestroy($im);
?>
所以基本上我想要的是在完成圖像處理第一個例子,但沒有保存額外的圖像並在瀏覽器中顯示輸出。
鏈接搜索:
的解決方案中沒有工作: Generate images with ImageMagick without saving to file but still display them on website
我如何轉換我的ImageMagick的代碼iMagick?PHP-Imagemagick image display
您可以嘗試'-'作爲輸出文件名。許多命令行應用程序將其用作簡單打印輸出的信號,而不是保存到文件。但請記住...... cli應用程序不知道它們是通過基於Web的腳本來調用的。將圖像的原始二進制內容輸出到控制檯不會神奇地使該圖像可見。 –
所以'-'確實如你所說,但是圖像的存儲位置在哪裏,以便我可以顯示它? –
它將被轉儲到imagick的標準輸出,這將返回到PHP。所以切換到[passthru()](http://php.net/manual/en/function.passthru.php),而不是exec() –