2012-10-31 45 views
0

是否有可能保存一個帶有任何類型的圖像(它可以是JPG,PNG,GIF等)的圖像作爲JPG到一個文件夾在PHP中沒有多個步驟(檢查擴展,保存爲相同類型並轉換爲JPG)?從url保存任何圖像類型爲JPG

樣本網址

  1. http://jdownloader.org/_media/knowledge/wiki/jdownloader.png?cache=&w=512&h=512(.PNG)
  2. http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com(.JPG)

的網址很多並不總是包含imagename.ext一種結構。

像一個代碼的(從這裏PHP save image file

$input = 'http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com'; 
$output = 'google.com.jpg'; 
file_put_contents($output, file_get_contents($url)); 

是否可以保存任何圖像文件類型,而不檢查擴展? 我試圖

$input = 'URL_string'; 
$output = 'path/to/folder/name'; // no extensions 
file_put_contents($output, file_get_contents($url)); 
imagejpeg($output,"temp.jpg"); 

力的工作。我讀了Create Image From Url Any File Type,Saving image from PHP URL,還有更多,但不知道如何得到一個簡單的解決方案。

感謝您的任何幫助。

回答

0

我想這是不可能提到的代碼段(記住把所有的現有圖像的文件類型在那裏),但最基本的那裏應該有用於轉換的庫。

也爲你試過的東西 - 只重命名文件擴展名來.jpg實際上並沒有使它成爲一個JPG(IrfanView的,例如,警告您在打開這樣的文件,並詢問您是否要更改擴展回正確的)

+0

我只是試圖擺弄擴展思考可能是imagejpeg()會做到這一點。我看到有關imajik的一些信息,但我沒有安裝。希望php能做到這一點,然後再繼續添加軟件包。 – aVC

0

作爲解決您的問題,請參見下面

<?php 
    $im=imagecreatefromjpeg('http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com'); 
    header('Content-type:image/jpeg'); 
    imagejpeg($im); 
?> 

imagecreatefromjpeg功能提到的代碼段用於從文件或URL創建圖像

而且allow_url_fopen選項設置必須在PHP被設置爲開.ini文件用於從URL創建圖像

有關更多詳細信息,請參閱下面提到的文檔url

http://php.net/manual/en/filesystem.configuration.php

+0

它並不總是從jpg。它可以是任何文件類型。那就是我在找的東西。像imagejpeg('$ url')其中url可以是JPG,PNG或其他任何東西 – aVC

+0

請嘗試將代碼片段提到我的最新答案中。它將保存獨立於任何文件擴展名的圖像。 –

+0

羅賓你明顯誤解了這個問題 – Vultour

0

作爲解決您的問題,請參見下面

 $h=get_headers('http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com',1); 
     $img_content=file_get_contents('http://images.websnapr.com/?size=size&key=Y64Q44QLt12u&url=http://google.com'); 
     $extension='jpg'; 
     if(!empty($img_content)) 
     { 
    switch($h['Content-type']) 
    { 
    case 'image/jpeg': 
     $extension='jpg'; 
     break; 
    case 'image/gif': 
     $extension='gif'; 
     break; 
    case 'image/png': 
     $extension='png'; 
     break;  
    } 

file_put_contents('abc.'.$extension,$img_content); 

} 
+1

有一個編輯按鈕。另外我猜他想將圖像轉換爲JPG,而不僅僅是改變擴展名。 – Vultour

+0

是的,不只是一個擴展的變化。但是從@Seth說什麼,以及我不能在任何地方找到任何討論,我想我應該按照常規方式:檢查標題,並使用各個函數,如createimagefromjpeg/png/gif等。 – aVC