使用自定义大小上载时保持图像颜色和质量

时间:2016-11-14 作者:Faye

客户经常遇到的一个问题是,他们倾向于直接从设备上传5MB图像到网站上。最好的解决方法是,既然我们不能真正实施适当的图像大小和裁剪,就用wordpress函数神奇地实现这一点。

// add new Image sizes
add_image_size( \'sqr-thumb\', 450, 450, true ); // Hard Crop Mode
这里添加了一个自定义图像大小,450 x 450的裁剪。现在它工作了,很漂亮,但是,图像的颜色和质量发生了巨大的变化。

在下图中,我调用两个图像的媒介(不是sqr拇指,但如果我是方形的话,它将是方形的)。

右侧的一个是在自定义图像大小之前添加的。左侧的一个是在自定义图像裁剪之后添加的(它有一个sqr thumb版本)。我在两个实例中都使用了相同的图像进行上传。

很明显,左边的那个质量和颜色都不太好(就像你在黑白样品中看到的那样)。

有没有办法做到这一点并保持图像质量?

这里使用的图像是通过Photoshop Creative Cloud创建的PNG保存RGB。可在以下网址找到:http://rehost.ca/temp/woman.png

注意:我用了6种不同的PNG,颜色和黑白。所有这些都会发生。

我们的开发服务器使用GD。

Sample

1 个回复
SO网友:Dave Romsey

使用jpeg_qualitywp_editor_set_quality 设置大小调整后图像质量的过滤器:

add_filter( \'wp_editor_set_quality\', \'wpse246186_image_quality\' );
add_filter( \'jpeg_quality\', \'wpse246186_image_quality\' );
function wpse246186_image_quality( $quality ) {
    return 100; // 0 - 100% quality
}
我无法复制报告的问题;原始PNG图像看起来与缩略图相同。在Windows 7上的Chrome中测试,PHP版本5.6.19,GD支持:已启用,未安装ImageMagick,宽范围硬件校准监视器。

Notes

<确保图像已保存在sRGB颜色空间中prior 上传到WordPress。这将防止颜色和饱和度损失。

更改质量设置不会影响已上传的图像。使用插件,如Regenerate Thumbnails t更新已上载的图像。

WordPress v4中的默认质量设置为82。5起。

相关推荐

Images with overlay

我有一些图片在一个容器中,我想添加一个覆盖和图标。这不是现成的,但我找到了一些有用的代码:HTML:<div class=\"main\"> <span class=\"featured\"><img src=\"http://joshrodg.com/IMG_001-258x258.jpg\" title=\"\" alt=\"\"></span> </div> CSS:.featured {