php 如何从url调整图像大小并使图像的大小更小
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1960953/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
how to resize image from url and make the size of the image smaller
提问by Chris
I have a joomla website with the virtuemart module.
我有一个带有美德玛特模块的 joomla 网站。
What I have are images and thumbnails which are hosted on a other domain.
我拥有的是托管在其他域上的图像和缩略图。
Virtuemart gives me 2 options:
Virtuemart 给了我两个选择:
1 - browse for image, a thumbnail will be automaticly created
1 - 浏览图片,会自动创建缩略图
2 - enter a URL for a image which is external hosted, this option doesn't have a resize option
2 - 输入外部托管图像的 URL,此选项没有调整大小选项
The way I have overcome this problem (with help ofcourse) is to set a height="" attribute to the img tag. The only problem is that when a big image is loaded ie: 500 x 700 px, the so called thumbnail takes time to load, this is logical.
我克服这个问题的方法(当然有帮助)是为 img 标签设置一个 height="" 属性。唯一的问题是,当加载大图像时,即:500 x 700 像素,所谓的缩略图需要时间来加载,这是合乎逻辑的。
Can someone give me options how a image from a url can be "resized" with as outcome that the thumbnail takes less time to load?
有人可以告诉我如何“调整大小”来自 url 的图像的选项,结果是缩略图加载时间更短?
Personally I was thinking about a way to decrease the image quality of the resized image which comes from a url with a code, css or anything else?
就我个人而言,我正在考虑一种降低来自带有代码、css 或其他任何内容的 url 的调整大小图像的图像质量的方法?
I know this has less to do with solving a code, but I know you guys know more options then I do.
我知道这与解决代码关系不大,但我知道你们比我知道更多的选择。
回答by codaddict
You can make use of imagecopyresampledfunction of PHP.
您可以使用PHP的imagecopyresampled功能。
Sample program (source: php.net)
示例程序(来源:php.net)
<?php
// The file
$filename = 'http://valplibrary.files.wordpress.com/2009/01/5b585d_merry-christmas-blue-style.jpg';
$percent = 0.5; // percentage of resize
// Content type
header('Content-type: image/jpeg');
// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;
// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Output
imagejpeg($image_p, null, 100);
?>

