2013-03-28 51 views
-3

我想下載該圖像的圖像: http://imgs.xkcd.com/clickdrag/1n2w.png下載使用PHP,並在同一時間調整其大小

但像對我來說太大,所以我想調整它可以說比它小100倍就是現在。我也希望圖像有它的原始名稱(在這種情況下是1n2w.png)。

For downloading i was thinking of using somet 
$content = file_get_contents('http://imgs.xkcd.com/clickdrag/1n2w.png'); 
file_put_contents('/images', $content); 

但它沒有工作。也許我需要用捲曲來做這個? 至於調整大小的部分,我不知道要使用什麼,所以如果可能的話,我想也看到這方面的一些建議。

+1

file_get_contents由於某種安全原因,有些文件不起作用,您可以使用curl。要進行圖片大小調整,請先將文件保存到您的位置,然後重新調整大小。 – Neo 2013-03-28 07:34:08

+0

@Neo,是否只能先下載然後調整大小?因爲下載這個大圖像需要很長時間(比如幾分鐘,而且我有225個這樣的圖像,所以我想知道如果我可以在下載之前通過調整它的大小來加速這個過程) – Edgar 2013-03-28 07:35:47

+2

是的,你必須使用下載圖像的捲曲。它比file_put_contents更高效,並且無需下載即可調整它的大小。所以下載它,然後使用php-resize腳本調整大小,然後刪除原始大尺寸圖像 – Kalai 2013-03-28 07:36:23

回答

0

對於圖像大小調整,您可以使用它。

$percent = 0.5; 

    $filename = '/home/Pictures/downloaded_file.jpg'; 

    header('Content-type: image/jpeg'); 

    list($width, $height) = getimagesize($filename); 

    $new_width = $width * $percent; 

    $new_height = $height * $percent; 

    $image_p = imagecreatetruecolor($new_width, $new_height); 

    $image = imagecreatefromjpeg($filename) 
    ; 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

    imagejpeg($image_p, null, 100); 
+0

這項工作,但只適用於JPEG圖像,可以用於PNG圖像,或者我需要將我的圖像轉換爲JPEG? – Edgar 2013-03-28 08:41:24

+0

這裏需要稍作修改,你需要在header中改變,然後你需要使用imagepng代替imagejpeg函數,並使用imagecreatefrompng代替imagecreatefromjpeg。 – Neo 2013-03-28 08:44:44

+0

更改了所有3種東西('image/png','imagecreatefrompng','imagepng'),但它現在不顯示任何東西 – Edgar 2013-03-28 08:52:41

相關問題