2012-08-29 82 views
0

我正在嘗試創建一個小型實驗性腳本,用於從使用php的網絡漫畫網站獲取漫畫。我正在玩的網站是Fredo and Pidjin。這裏是我寫到目前爲止的代碼:獲取源代碼後無法爲圖像創建句柄

<?php 

     require_once "../shdp/simple_html_dom.php"; 

     $next = "http://www.pidjin.net/2012/08/28/of-my-own/"; 
     $html = file_get_html($next); 

     $imageList = $html->find('div[class=episode] p img'); 

     for($iii=0; $iii<count($imageList); $iii++){ 
      $storage[$iii] = $imageList[$iii]->src; 

     } 

     $img = file_get_contents($storage[0]); 
     $img = imagecreatefromstring($img); 

     header("Content-type: image/png"); 
     $something = imagepng($img); 
?> 

對於抓取HTML,我使用簡單的HTML DOM解析器。

這就是我想要做的:獲取圖像的src並將其分配給一個句柄。隨後爲頁面上的所有漫畫面板找到它,並使用imagecopy製作一個可以保存到計算機中的條。但是,代碼處於初步階段,我還沒有到圖像複製部分。

問題:雖然imagepng(...)在瀏覽器上輸出文件,但我無法在imagecopy中使用圖像上的$ src句柄(可以這麼說)。

在此先感謝。

回答

2

你是如何獲得圖像的句柄?

$src = imagecreatefrompng($storage[0]); 
$dest = imagecreatetruecolor(80, 40); 
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40); 

header('Content-Type: image/png'); 
imagepng($dest); 

如果你需要顯示多個圖像嘗試輸出緩衝:

ob_start(); 
header('Content-Type: image/png'); 
imagepng($img1); 

header('Content-Type: image/png'); 
imagepng($img2); 
ob_end_flush(); 
+0

獲得$ SRC在你的建議,我該如何將其顯示在瀏覽器的方法後?使用echo($ src),瀏覽器顯示「資源ID#6」。我現在完全感到困惑。 – day0

+0

'imagecopy'用於*複製圖像的一部分*,它返回的是包含複製部分的資源。爲了在瀏覽器中顯示它,你只需要'header('Content-Type:image/png'); imagepng($ DEST);'。這是你想要達到的目標嗎? – raidenace

+0

到目前爲止,非常感謝您的幫助。已經能夠取得一些進展。我目前面臨另一個問題,我有兩個資源'$ img1'和'img2'。我試着給出兩個連續的'imagepng($ resource)',但只有第一個圖像顯示在瀏覽器中。 – day0