我有图像阵列
$images[
'image1.jpg',
'image2.jpg',
'image3.jpg',
'image4.jpg',
'image5.jpg',
'image6.jpg',
'image7.jpg',
.....
'image2500.jpg'
];
这是我显示图像的循环
<?php foreach($images as $img) { ?>
<img src = "path_to_my_image/<?=$img;?>">
<?php } ?>
一切都很好,但是在我的阵列中有时可能会有2500到3000张图像,并且它的工作速度很慢。
如何在循环中创建缩略图而不保存和显示? 要么 我该如何解决这个问题?
答案 0 :(得分:0)
听起来你应该压缩图像! 以下是针对优化服务的免费试用版,但许多服务存在且可以自行编码。
https://kraken.io/web-interface
这是一个PHP包,可以在运行时进行,如果有必要的话!
答案 1 :(得分:0)
如果你想为每个图像使用PHP生成一个缩略图而不保存那个缩略图,那么你可以尝试这样一个简单的脚本。
<?php
/* simplethumb.php */
$file=!empty( $_GET['file'] ) ? $_GET['file'] : false;
$percent=!empty( $_GET['percent'] ) ? $_GET['percent'] : 10;
try{
if( !$file ) throw new Exception('Source file does not exist or cannot be found');
$source = @imagecreatefromjpeg( $file );
if( $source && file_exists( $file ) ){
clearstatcache();
list( $w, $h, $t, $a ) = getimagesize( $file );
$nw = $w * ($percent/100);
$nh = $h * ($percent/100);
$thumb = imagecreatetruecolor( $nw, $nh );
@imagecopyresized( $thumb, $source, 0, 0, 0, 0, $nw, $nh, $w, $h );
header('Content-type: image/jpeg');
@imagejpeg( $thumb );
@imagedestroy( $thumb );
}
}catch( Exception $e ){
header('HTTP/1.1 400 Bad Request',true,400);
exit( $e->getMessage() );
}
?>
为你的循环
foreach($images as $img) {
echo "<img src='simplethumb.php?file=path_to_my_image/{$img}&percent=25' />";
}