在我们开始之前,图像肯定足够大了。
我有一张2206 x 2042的图像,我希望以多种不同的方式裁剪(而不是缩放)它,以便响应地使用。
我正在尝试生产的尺寸为:
add_image_size( \'artist-full-xs\', 730, 1842, array(\'right\', \'bottom\') );
add_image_size( \'artist-full-xs-sm\', 730, 1000, array(\'right\', \'bottom\') );
add_image_size( \'artist-full-xs-sm-2\', 730, 600, array(\'right\', \'bottom\') );
第一幅图像按预期进行裁剪,下两幅图像均按比例缩放,而不是裁剪。这是通过查看uploads文件夹发现的,与任何模板问题无关。
@Andy Macauley Brook实际尺寸输出如下:
730 x 1842730 x 1000730 x 600因此,实际作物正在工作,只是在最后两个作物中按比例工作,而不是实际作物
有人知道为什么吗?有人能帮我吗?
SO网友:Rarst
WordPress的“裁剪”并不是字面上的裁剪。就像在中一样,拍摄一张图像并从指定的点剪下这一精确的部分。
其大致意思是:调整图像大小以尽可能适合,然后裁剪不适合的部分。实际上,这意味着结果受源图像和目标大小的比率影响。
确切的逻辑包含在image_resize_dimensions()
函数并按内联注释汇总如下:
// crop the largest possible portion of the original image that we can size to $dest_w x $dest_h
不仅仅是精确的部分,而且是原始的最大可能部分。
确切的步骤是数学,不太友好,无法简单阅读和/或解释。通过快速查看,似乎发生了以下情况:
计算原始图像的比率如何确定最适合目标尺寸在上一步的结果上应用裁剪在您的特定情况下,大小的区别在于前两个高(更大的高度),第三个宽(更大的宽度)。
在前一种情况下,原稿按高度调整大小,然后切割左部分在后一种情况下,原稿按宽度调整大小,然后切掉顶部部分这就是导致尺寸看起来不同的原因。由于纵横比不同,WP以不同的方式将原始特性融入其中。
如果你把它们并排看一看,很明显这一逻辑是如何应用的: