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