生成的图像大小与媒体设置图像大小不匹配

时间:2017-06-17 作者:Niraj Pandey

我在“媒体设置”下定义了以下图像大小:

Thumbnail Size: 125x69
Medium Size: 461x257
Large Size: 1070x600
我有EWWW Image OptimizerRegenerate Thumbnails 安装在最新WP(4.8)上。我检查了EWW优化器上的“高级设置”,在下面的屏幕截图中,它列出了我认为将生成的大小。

enter image description here

然而,当我上传图像或强制重新生成缩略图时,生成的图像的宽度根本不匹配。例如,我上传了一幅1070x600的图像,下面是它实际生成的大小:

image-123x69.jpg
image-294x165.jpg
image-323x181.jpg
image-335x188.jpg
image-458x257.jpg
image-679x381.jpg
image-768x431.jpg
我可以理解高度会因纵横比的不同而有所不同,但我不明白为什么它甚至会改变生成图像的宽度?

我在函数中只有一部分代码。php如下所示:

// Add custom image sizes
add_image_size(\'home-thumbnail-highlight\', 694, 381);
add_image_size(\'home-thumbnail\', 330, 181);
add_image_size(\'listing-thumbnail\', 342, 188);
add_image_size(\'sidebar-small-thumbnail\', 300, 165);
这个问题意味着,例如,当我使用缩略图(125xh)时,图像会稍微像素化,因为生成的图像是123xh,而渲染的图像是125xh。我是否遗漏了一些明显的内容,或者是否有办法确保生成的宽度始终与“媒体设置”页面中的宽度相匹配?

1 个回复
最合适的回答,由SO网友:Jared Cobb 整理而成

默认情况下add_image_size 将尝试调整自定义图像大小,而不是裁剪它们(请参见函数中的第四个参数)。

所以你有几个选择。。。

通过传球进行裁剪true 对于的第四个参数add_image_size, 或者通过为第四个参数传递数组来自定义裁剪的位置(请参见文档)。这将强制按照定义精确调整图像尺寸(例如,“主页缩略图高光”将为694x381)

  • 设置height 设置为非常高的值,并且不传递第四个参数进行裁剪(以执行调整大小)

    add_image_size(\'home-thumbnail-highlight\', 694, 99999);
    add_image_size(\'home-thumbnail\', 330, 99999);
    add_image_size(\'listing-thumbnail\', 342, 99999);
    add_image_size(\'sidebar-small-thumbnail\', 300, 99999);
    
    这将强制您的自定义尺寸始终以宽度约束,而不是高度约束。

  • 结束

    相关推荐

    如何在media_Handle_Upload()中获取上传的图片url?

    我指的是这本法典,https://codex.wordpress.org/Function_Reference/media_handle_upload在那里,我可以通过以下方式将上载的图像作为附件附加到帖子:$attachment_id = media_handle_upload( \'my_image_upload\', $_POST[\'post_id\'] );但是,我只想url 上传的图像,无需将图像添加为帖子附件。我如何获得上传的图像url?