2013-04-11 31 views
0

我遇到了imagick在cakephp應用中的MAMP安裝上運行的問題。Imagick with MAMP + php 5.3.6 + cakephp

我遵循安裝說明here和安裝似乎已經工作的意義,類'Imagick'存在我的,如果我測試它在PHP腳本(我可以看到該模塊加載在phpinfo )。然而,只要我回應任何內容,我利用該類運行的任何示例都會被掛起。我的觀點是:

<?php 
    /* Create a new imagick object */ 
    $im = new Imagick(); 

    /* Create new image. This will be used as fill pattern */ 
    $im->newPseudoImage(50, 50, "gradient:red-black"); 

    /* Create imagickdraw object */ 
    $draw = new ImagickDraw(); 

    /* Start a new pattern called "gradient" */ 
    $draw->pushPattern('gradient', 0, 0, 50, 50); 

    /* Composite the gradient on the pattern */ 
    $draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im); 

    /* Close the pattern */ 
    $draw->popPattern(); 

    /* Use the pattern called "gradient" as the fill */ 
    $draw->setFillPatternURL('#gradient'); 

    /* Set font size to 52 */ 
    $draw->setFontSize(52); 

    /* Annotate some text */ 
    $draw->annotation(20, 50, "Hello World!"); 

    /* Create a new canvas object and a white image */ 
    $canvas = new Imagick(); 
    $canvas->newImage(350, 70, "white"); 

    /* Draw the ImagickDraw on to the canvas */ 
    $canvas->drawImage($draw); 

    /* 1px black border around the image */ 
    $canvas->borderImage('black', 1, 1); 

    /* Set the format to PNG */ 
    $canvas->setImageFormat('png'); 

    /* Output the image */ 
    header("Content-Type: image/png"); 
    echo $canvas; 
    ?> 

只要遇到echo $canvas這個腳本就會掛起。 這個腳本在一個簡單的舊php文件中完美工作,即在蛋糕外面,但是當它通過我的cakephp應用動作訪問時,它會掛起。我的動作代碼是:

public function test(){ 

      $this->layout = false; 
    } 

蛋糕錯誤日誌爲空。

回答

0

好的問題是如何在cakephp中設置標題。 Cake不允許我以這種方式在視圖中設置頁眉。

我下面的代碼添加到測試動作:

$this->response->type("image/png"); 

現在它完美的作品。