0

嗨,我正在使用the_post_thumbnailnivo 滑块,我的问题是我似乎无法找到一种简单的方法来自动将图像调整为精确的尺寸。当我使用add_image_size它时,它不会正确拉伸它,它会保持约束。我不想裁剪或任何东西。我只希望用户上传图片,之后不需要做任何事情。

它可能很愚蠢,但我已经用谷歌搜索了它,尽管有很多关于它的内容,包括各种插件,但我似乎无法找到一个可靠的答案。

谢谢

4

2 回答 2

0

add_image_size() 方法有一个您希望使用的裁剪方法的标志。但是,它们都将保持图像的比例不变。

您可以扩展功能或构建自己的插件以按照您想要的方式处理调整大小 - 您可能想看看 /wp-includes/media.php 和一个简单的调整大小类,如https://github.com/ mdular/ReSample.php/blob/master/ReSample.php

不过,我不喜欢扭曲图像比例。如果客户无法区分纵向或横向纵横比,那么在大多数情况下,裁剪图像而不是拉伸它似乎是更优雅的解决方案。

对于您的问题的快速而肮脏的解决方案,尽管我建议以下内容:

  1. 添加图像大小并通过宽度或高度限制它以适合您的滑块宽度或高度(此示例仅通过宽度限制):

    add_image_size('滑块图像', 760, 9999); //760 像素宽,“无限”高

  2. 输出图像标签时,将图像标签中的尺寸强制为 760 x 474

    <img src="" width="760" height="474" ...>

这将为您留下可能比您想要的更高或更宽的图像文件,但将被迫在浏览器中设置尺寸,因此适合滑块。是的,它很脏,但是它可以与您当前拥有的工具一起使用。

根据您的评论进行更新:您可以通过获取原始图像信息自己构建图像标签。

1) 像这样抓取 post 元数据(假设 the_post() 已经执行,如果你在 while 循环中应该是这样):

$meta = get_post_meta($post->ID)

2)检查缩略图ID以避免空输出(并在if块内执行步骤3 + 4)

if(!empty($meta['_tumbnail_id'][0])

3) 获取实际的缩略图原始数据 - 请务必填写您想要的“缩略图版本”(大小)(“缩略图”、“中等”等。如果您在 functions.php 中使用了 add_image_size(),请填写您自己的) )

$image = wp_get_attachment_image_src( $meta['_thumbnail_id'][0], 'VERSION');

4)构建图像标签:

$image[0] = the src url
$image[1] = the width - you may use this
$image[2] = the height - you may wish to force this to your liking

希望这可以帮助 :)

于 2012-10-10T09:25:00.997 回答
0

我认为你需要澄清你的问题。如果我理解正确,您希望上传的图像是准确的图像而不进行裁剪?确保在调用 nivo 滑块的_post_thumbnail 函数之前保存上传。这样,您就可以在函数获取原始图像之前对其进行操作。

于 2012-10-07T09:29:49.347 回答