php显示图像并添加缩放

时间:2017-01-19 17:35:37

标签: php jquery html css

我不知道我是否做得对,但是我有一堆图像我正在从页面检索,因为我不想在页面上看到太多大尺寸的图像,我有显示它们的尺寸要小得多,但我已将它们连接到一个链接,这样当用户点击图片时,它会以原始尺寸打开该图像。问题是那些图像真的很大,我的客户想要放大和缩小我不知道该怎么做的能力。客户端考虑调整窗口大小(在浏览器中),但遗憾的是它调整了所有其他窗口(对于应用程序)的大小,这是不可行的,因为他需要查看图像并将其与应用程序上的某些信息进行比较。以下是显示的图像代码以及用户点击图像后的代码。
小图片

  $count = 0;
       echo " <div class=\"row\">"; 
   while($row = $result->fetch_assoc()) {
       $ext = $row['Extension'];
      $ImageID=$row['ImageID'];
       if(($count%3) ==0){
        echo "</div>";
         echo " <div class=\"row\">"; 

            echo "  <div class=\"col-sm-2\">";
            echo " <a href=\"viewimage.php?ImageID=$ImageID\" class=\"thumbnail\">";
            echo '<img id=\"myImg\" src="data:image/$ext;base64,'.base64_encode( $row['Image'] ).'" style=\"width:130px;height:130px\"/>';
            echo"</a></div>";      


        ++$count;

       }else{
                echo "  <div class=\"col-sm-2\">";
            echo " <a href=\"viewimage.php?ImageID=$ImageID\" class=\"thumbnail\">";
            echo '<img id=\"myImg\" src="data:image/$ext;base64,'.base64_encode( $row['Image'] ).'" style=\"width:130px;height:130px\"/>';
            echo"</a></div>";
            ++$count;

       }

   }
 echo "</div>" ;

点击链接后的图片

<?php
$ImageID = $_GET['ImageID'];
$query = "Select * from $dbname.Images where ImageID = $ImageID";

$result = mysqli_query($conn,$query);


$row = $result->fetch_assoc();
$ext = $row['Extension'];
echo '<img src="data:image/$ext;base64,'.base64_encode( $row['Image'] ).'"/>';


?>

此时我不知道该怎么做,我该如何提供放大/缩小功能?

1 个答案:

答案 0 :(得分:1)

首先要做的事情:一般不要将base64编码的图像直接添加到你的html中。链接到它们,并将它们托管在您的服务器上。对于服务器,数据库和客户端来说,这是一种非常昂贵的图像显示方式。它还使客户端无法缓存图像,这意味着每次重复的页面访问都会导致整个数据被发送。

在网络服务器上创建两个文件夹:

图像/

缩略图/

将小图像放在“缩略图”中,将大图像放在“图像”中 如果需要,将图像名称存储在数据库中,这样你就可以做更多这样的事情:

echo '<a href="thumbnails/'+$imageName+'"><img src="images/'+$imageName+'"></a>'

如果您愿意,可以使用gd-lib对图像进行按需调整大小。 基本思想是伪代码:

//Before the echo command, but after fetching the filename from database
if thumbnails/$imageName exists
  then use gdlib to read images/$imageName and save a small version to thumbnails/$imageName 

如果您想使用客户端javascript在同一页面上显示更大的版本,此方法也适用。有关示例http://finalkey.net/gallery

,请参阅我的页面finalkey.net