如何从网址调整图片大小和显示图片?

时间:2016-12-14 06:11:12

标签: php

所以我正在构建一个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左右。任何建议和意见将不胜感激!谢谢!

3 个答案:

答案 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中指定所需的图像大小来从服务器获取已调整大小的图像:

enter image description here

https://example.com/image.jpg

enter image description here

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",
});