上传JPG文件时,WordPress会压缩原始图像吗?

时间:2012-03-23 作者:Dominic P

我正在尝试确定我的图像处理工作流应该是什么样子。我知道WordPress会在上传时自动调整图像大小并将其压缩到不同的大小。我很好奇它是否对原始图像进行了压缩。

由于它正在对较小的图像进行压缩(正如它应该做的那样),我不想上传一个已经压缩的JPEG来对较小的图像进行重新压缩。但是,如果它不压缩原稿,当有人去查看原稿时,我会有比需要的大得多的图像文件。

我认为理想的工作流程应该是将一个高质量的100 JPEG上传到WordPress,让它调整大小并使用全质量图像压缩所有较小的图像,然后再压缩原始图像。是否有人知道这是否可行(或者这是否是已经在做的)?

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

这是我从阅读wp_handle_upload 中的函数wp-admin/includes/file.php.

WordPress保留原始上传文件(通常)-见下文

  • WordPress确实会将JPEG压缩应用于resized images 当源是JPEG时jpeg_quality 过滤器:

    add_filter(\'jpeg_quality\', \'ex46632_jpeg_quality\');
    function ex46632_jpeg_quality($quality) {
        $quality = 95; // An example of setting the quality to a higher value.
        return $quality;
    }
    
    您可以强制将上载的图像大小调整为Max Width/Max Height 指定于Settings > Media > Large size 通过添加wp_upload_resize 过滤器:

    add_filter(\'wp_upload_resize\', \'ex46632_upload_resize\');
    function ex46632_upload_resize($resize) {
        $resize = true; // Force resizing to the max sizes.
        return $resize;
    }
    
    如果在创建调整大小的图像时出现任何错误,则将保留原始上载的文件
  • 如果成功调整大小,则会丢弃原始上载的媒体

    Update如前所述,在wp_handle_upload 作用此更改修复了一个bug,为了修复bug,实际上删除了调整大小的代码,因此在上载时不会调整图像的大小,而是保持其原始大小。供您参考explicit code changebug ticket. 应该注意的是,这一更改仍在“等待对3.4的审查”,尚未发布。

    还请注意the ticket 有评论“让Plupload调整图像大小(在上载之前)”,因此可能还有另一个地方可以检查图像的大小,因为Plupload已经包含在内。

  • 结束

    相关推荐

    在Uploads-wp_mkdir_p()或WP_Filessystem中创建目录?

    我认为我以前没有在WP中创建文件夹/文件的实际需要,但对于插件,我需要缓存(用于调整大小的图像)文件夹wp-content/uploads.这就提出了一个问题——我真的需要用Filesystem API (包括在需要时杂乱无章地要求FTP凭据),或wp_mkdir_p() 够了吗?