2012-04-23 37 views
1

我正在调试处理图像资源的PHP应用程序。我希望看到输出($dst_image根据the PHP manual's jargon),但代码不在我可以简单地将其输出到浏览器的地方。最好的调试过程是将$dst_image写入文件,并在浏览器中加载该文件?任何其他想法?PHP调试:如何查看图像资源信息

谢谢。

+0

为什么你不能输出到浏览器?任何地方的'echo'都应该这样做。 – 2012-04-23 15:15:31

+0

我无法输出到浏览器,因为其他代码已经将文本输出到浏览器。图像处理位发生在后台。如果应用程序使用输出缓冲,我可以做到这一点,但它也不能像这样重构。 – dotancohen 2012-04-23 15:32:25

回答

1

参见Example #1 and #2,imagejpeg将输出jpeg数据。

你需要做的几个吊环:图像header('Content-Type: image/jpeg');

  • 输出

    1. 套头的图像数据
    2. 确保你是不是除了像

    在输出任何数据最后你应该得到这样的结果:

    <?php 
    
    // Get new dimensions 
    // Resample 
    // etc... 
    
    // set header so browser can render image properly 
    header('Content-Type: image/jpeg'); 
    
    // Output 
    imagejpeg($image, null, xxx); 
    // [or] 
    echo file_get_contents($pathToJpgImage); 
    


    如果你发现在你的情况,其中自当前请求输出数据,你不能输出图像...您可以通过注射使用<img src="data:image/jpeg;base64,..." />编码的图像数据转换成HTML以base64。见php documentation on base64_encode for images

  • +0

    谢谢,但出于技术原因(输出已发送),图像不能简单地发送到浏览器,除非有办法否定以前输出的所有文本。 – dotancohen 2012-04-23 15:34:33

    +0

    尽管我没有解决我提出的问题,但我接受这个作为公认的答案,因为它是一般情况的规范解决方案。如果这种解决方案不起作用,那么我们必须将图像写入文件,正如我所怀疑的那样。谢谢Alex。 – dotancohen 2012-04-23 16:38:52

    +0

    @dotancohen我的道歉,从你的问题中我不清楚......看到我的答案的第二部分,它应该做的伎俩。 – Alex 2012-04-23 19:02:21