0

我正在尝试使用WideImage 插件并将图像加载到其中,调整大小,然后以以下形式输出:

<img class="image" src="image.jpg" />

到目前为止我有这个:

<?php
  $image = WideImage::load('image.jpg');
  $resizedImage = $image->resize(150, 150, 'outside')->crop('center', 'middle', 150, 150);
?>

如何输出调整大小的图像,使其成为上面的形式?帮助!

4

3 回答 3

1

调整大小

您可以通过向该方法传递一些参数来调整图像大小resize()。前两个是图像的新维度,可以是智能坐标值。如果未指定一个维度(或给出 null),则根据另一个维度的比率计算。

将图像大小调整为 400×300 的框。默认情况下,调整大小会保持原始图像的纵横比,并且生成的图像从内部适合给定的尺寸。

$resized = $image->resize(400, 300);

这等于将 'inside' 作为 $fit 值传递。

$resized = $image->resize(400, 300, 'inside');

通过将 'outside' 传递给 $fit 参数,从外部调整图像大小以适应 400×300 的框。这意味着图像将至少为 400×300 大,并且将保持纵横比。

$resized = $image->resize(400, 300, 'outside');

通过传递 'fill' 作为 $fit 参数的值来调整图像的大小以完全适合 400×300 的框。图像将根据需要进行拉伸,可能不会保持纵横比。

$resized = $image->resize(400, 300, 'fill');

第四个参数 ($scale) 决定何时缩放图像。可能的值包括任何(默认)、向下和向上:

down – resize if image is larger than the new dimensions
up – resize if image is smaller than the new dimensions
any – resize regardless of the image size

resize 方法有两个别名:resizeUp 和 resizeDown。这两个等于分别用 $scale = 'up' 和 $scale = 'down' 调用 resize() 。

$resized = $image->resize(350, 500, 'inside', 'down');
// is equal to
$resized = $image->resizeDown(350, 500, 'inside');

在你的 HTML 添加

<img src= "<?= $resized ?>"> – Moises Zaragoza just now edit 
于 2013-09-24T01:05:33.553 回答
1

首先,您必须将调整大小的图像另存为文件。在你的 php 中输入:

<?php
    $image = WideImage::load('image.jpg');
    $resizedImage = $image->resize(150, 150, 'outside')->crop('center', 'middle', 150, 150);
    $resizedImage ->saveToFile('resized_image.jpg');
?>

然后让您的图像引用新文件:

<img class="image" src="resized_image.jpg" />
于 2018-04-20T00:46:22.480 回答
1

问题是浏览器试图读取图像,就好像它是文本一样,更具体地说是 html 文档。为了解决这个问题,我将为图像处理创建一个新的 php 脚本,比方说image.php,使用一个函数获取图像路径以及修改的参数。最后只是像以前一样显示图像,只需确保将内容的标题更改为:

 header('Content-type: image/jpg');

或者

header('Content-type: image/png');

这样浏览器就会知道如何解释接收到的数据。

于 2015-12-07T16:09:28.837 回答