我有一个名为images
的文件夹,在那里我有像图像:hero.jpg,hero_medium.jpg,hero_small.jpg.我的问题是,如果这是正确的解决方案,或者也许它会更好地有一个大的图片,并通过URL更改其大小.目前我已经设法在images
文件夹中的img.php
文件中做这样的事情:
<?php
header('Content-Type: image/jpeg');
$filename = 'hero.jpg';
list($width_orig, $height_orig) = getimagesize($filename);
if(empty($_GET['w'])){
$width = $width_orig;
} else {
$width = $_GET['w'];
}
$height=$width;
$ratio_orig = $width_orig/$height_orig;
if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, null, 100);
字符串
我想通过一个友好的URL来更改照片的大小,例如在php中使用htaccess将hero_medium.jpg更改为768px,这样的事情可能吗?
编辑:苹果在其网站上有一个有趣的情况.图像的URL看起来像下面这样:https://www.apple.com/newsroom/images/environments/stores/Apple_Tower-Theatre-now-open-in-downtown-LA-store-interior-wide-shot_062421_big.jpg.medium.jpg
,为什么有big.jpg.medium.jpg
?我怀疑他们可能是做一些与htaccess文件,因为有那么多的照片将无法读取,所以我认为他们是动态地重新定位它们.你怎么看?
编辑2:我注意到通过php加载和更改图像需要更长的时间,这真的是一个好主意吗?
2条答案
按热度按时间hts6caw31#
您想使用URL参数设置图像的宽度和高度。这对于动态浏览图像很有用。要实现这一点,您可以将宽度和高度参数附加到图像URL。下面是如何执行此操作的示例
Original Image URL:
https://example.com/image.jpg
使用URL调整图片大小:
https://example.com/image.jpg?width=600&height=400
HTML文件
字符串
PHP文件名与'resize.php'
型
8ulbf1ek2#
如果你只是想返回一个足够尺寸的图像,有几种方法可以实现这一点。
也许你想看看这个:https://css-tricks.com/a-guide-to-the-responsive-images-syntax-in-html/