将来自URL的任何图像类型保存为jpg。
将来自URL的任何图像类型保存为jpg。
在php中,是否可以将任何类型(例如jpg、png、gif等)的带图像的url保存为jpg格式的文件夹,而不需要多个步骤(检查扩展名、保存为相同类型并转换为jpg)?
示例url:
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)
url可能不总是包含imagename.ext这样的结构。
对于像这样的代码(源自PHP保存图像文件):
$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'; // 没有扩展名 file_put_contents($output, file_get_contents($url)); imagejpeg($output,"temp.jpg");
但没有成功。我阅读了根据url创建任何文件类型的图像、使用PHP保存图像等等,但不确定如何得到一个简单的解决方案。
感谢任何帮助。
这个问题的出现是因为使用给定的URL保存图像时,无法直接将其保存为JPG格式。虽然有许多不同的图像文件类型,但对于一些基本的文件类型,可能存在用于转换的库。然而,仅仅通过更改文件扩展名为.jpg并不会真正将其转换为JPG格式。例如,IrfanView在打开此类文件时会发出警告,并询问是否要将扩展名更改回正确的格式。有人尝试过使用imagejpeg()函数来处理文件扩展名,还看到了有关imajik的一些信息,但是他并没有安装它。他希望在继续添加软件包之前,PHP能够完成此任务。
解决这个问题的方法可能是使用适当的图像处理库或软件包,例如imajik。该库可以提供将图像从给定的URL保存为JPG格式的功能。另外,还可以尝试使用其他语言或工具来实现这个功能,如Python的Pillow库或使用命令行工具如ImageMagick。
总之,为了从给定的URL保存图像为JPG格式,需要使用适当的图像处理库或软件包,并确保正确地转换图像的文件格式。
问题的原因是希望能够从一个URL中保存任何类型的图像为jpg格式。解决方法是使用PHP的imagecreatefromjpeg函数来创建一个图像,并使用imagejpeg函数将其保存为jpg格式的文件。
要解决这个问题,首先需要确保在php.ini文件中将allow_url_fopen设置为On,以便从URL创建图像。然后,可以使用以下代码片段来保存图像:
这段代码将创建一个来自URL的图像,并将其保存为jpg格式的文件。请注意,这里的URL可以是任何类型的图像文件,不仅仅是jpg格式。
如果想要了解更多细节,请参考以下链接中的文档:http://php.net/manual/en/filesystem.configuration.php。
通过尝试最新回答中提到的代码片段,可以独立于文件扩展名保存图像。
问题的出现原因是用户想要从给定的URL保存图片,但是用户希望将图片保存为JPG格式,而不仅仅是更改文件扩展名。
为了解决这个问题,下面的代码片段提供了一个解决方案:
$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); }
这段代码首先通过`get_headers`函数获取给定URL的响应头信息,然后使用`file_get_contents`函数获取图片的内容。
接下来,根据`Content-type`头信息中的值,判断图片的类型,并将文件扩展名设置为对应的类型(如JPG、GIF或PNG)。
最后,使用`file_put_contents`函数将图片内容保存为以指定扩展名命名的文件。
通过这种方式,用户可以从给定URL保存任何类型的图片,并将其保存为JPG格式。