【问题标题】:How to make displayed image smaller in php [duplicate]如何在php中使显示的图像更小[重复]
【发布时间】:2019-12-26 12:30:22
【问题描述】:

我想在搜索页面中显示图像作为搜索查询结果的回显内容的一部分。这些图像具有不同的分辨率,对于下一部分也非常重要,它们不是方形的。为了显示这些照片,我最初使用的是这样的:

 if ($queryResult > 0){
         while ($row = mysqli_fetch_assoc($result)){

             echo '<img src="data:image/jpeg;base64,'.base64_encode($row['photo']).'" ">';
              echo "<a href='account.php?username=".$row['username']."&id=".$row['id']."' style='text-decoration:none; color:rgb(0,0,0)'>
              <div class='article-box'>
             <h3>".$row['username']."</h3>
                </div>
                </a>";

         }
      }  

但遗憾的是,显示的照片非常大,所以结果并不让我满意。这就是为什么后来我将图像显示部分设置为:

 echo '<img src="data:image/jpeg;base64,'.base64_encode($row['photo']).'" width="150" height="150">'; 

同样,它并没有给我带来好的结果。尽管图像最终很小,但非方形图像变成了正方形,导致它们变形。如何很好地显示图像,我的意思是使它们保持小或精确的大小,但不要使它们变形。

【问题讨论】:

  • 请注意,这通常是通过使用存储的缩略图来完成的,因为即时创建缩略图通常不太令人满意。

标签: php mysql image


【解决方案1】:

只需删除其中一个参数,浏览器就会缩放图像并保持纵横比。

echo '<img src="data:image/jpeg;base64,'.base64_encode($row['photo']).'" width="150"'; 

或者设置高度。但不是两者兼而有之。

【讨论】:

    【解决方案2】:

    您需要在上传图片时制作缩略图,而不是在显示时,它会加载得更快。

    看看这个脚本: https://pqina.nl/blog/creating-thumbnails-with-php/

    使用此脚本,您现在可以使用以下命令生成 160 x 160 像素的正方形缩略图:

    createThumbnail('profile.jpg', 'profile_thumb.jpg', 160);
    

    然后调用 profile_thumb.jpg 而不是原图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 2017-06-28
      • 1970-01-01
      • 2015-06-21
      • 2014-04-25
      相关资源
      最近更新 更多