将任何图像类型从网址保存为jpg

时间:2012-10-31 05:57:31

标签: php image save-as

是否可以将具有任何类型的图像(可以是jpg,png,gif等)的URL保存为jpg到php中的文件夹而无需多个步骤(检查扩展名,保存为相同类型并转换为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)
  3. url很多并不总是包含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");
    

    Dint work。我阅读了Create Image From Url Any File TypeSaving image from PHP URL等内容,但不确定如何获得简单的解决方案。

    感谢您的帮助。

3 个答案:

答案 0 :(得分: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

创建图像

还必须在php.ini文件中将allow_url_fopen设置设置为On,以便从URL创建图像

有关详细信息,请参阅以下url

中提到的文档

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

答案 1 :(得分: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);

 }

答案 2 :(得分:0)

我想这是不可能的(考虑到所有现有的图像文件类型),但对于最基本的图像文件类型,应该有转换库。

同样对于您尝试过的事情 - 只需将文件扩展名重命名为.jpg并不会使其成为jpg(例如,IrfanView会在打开此类文件时发出警告并询问您是否要更改扩展名以更正一个)