所以我正在构建一个php页面并尝试在表格中显示图像
目前我的代码如下:
echo "<h3>TEST TABLE</h3>";
echo "<table width='350px' border='1px'>"; //blah blah
while ($row2 = $res2->fetch_assoc()){ // takeing data from database as url is stored in mysql database
echo"<tr><td>".$row2['Name']."</td>";
echo"<td>".$row2['Description']."</td>";
$image =$row2['Img'];
$imageData = base64_encode(file_get_contents($image));
echo '<td><img src="data:image/jpeg;base64,'.$imageData.'"></td>'; //So this chunk is how I capture img from url and display
echo "<td><small>$Info</small></td></tr>";
}
echo "</table>";
我确实通过网址捕获并显示了图片。但是我不太确定如何调整imgs的大小,以便它们可以固定大小,如500x500左右。任何建议和意见将不胜感激!谢谢!
答案 0 :(得分:4)
您可以简单地将宽度,高度传递给图像标记,如:
<img src="data:image/jpeg;base64,'.$imageData.'" height="500" width="500">
其中height =“500”width =“500”表示500px。
如果您希望每张图片都是500x500,那么您必须在图片上传时定义它。
答案 1 :(得分:1)
这样的东西会起作用, 获取图像并将其存储在另一个变量中并调用php resizer函数并允许php本身有效地执行缩略图。 即使你可以自定义它,
// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);
// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
// Output
imagejpeg($thumb);
答案 2 :(得分:0)
如果页面上有多个图像,最好通过在URL中指定所需的图像大小来从服务器获取已调整大小的图像:
https://example.com/image.jpg
https://example.com/w_120,h_120,c_fill/image.jpg
它可以很容易地实现为Google Cloud Function(请参阅image-resizing
npm软件包):
$ yarn add image-resizing
const { createHandler } = require("image-resizing");
module.exports.img = createHandler({
// Where the source images are located.
// E.g. gs://s.example.com/image.jpg
sourceBucket: "s.example.com",
// Where the transformed images needs to be stored.
// E.g. gs://c.example.com/image__w_80,h_60.jpg
cacheBucket: "c.example.com",
});