Using WordPress ‘image_editor_output_format’ PHP filter

The image_editor_output_format WordPress PHP Filter allows you to modify the output format of images when saving them using the image editor.

Usage

add_filter('image_editor_output_format', 'my_custom_image_editor_output_format', 10, 3);
function my_custom_image_editor_output_format($output_format, $filename, $mime_type) {
    // your custom code here

    return $output_format;
}

Parameters

  • $output_format (string[]): An array of mime type mappings, which maps a source mime type to a new destination mime type. Default is an empty array.
  • $filename (string): The path to the image.
  • $mime_type (string): The source image mime type.

More information

See WordPress Developer Resources: image_editor_output_format

Examples

Convert all JPEG images to PNG format

This code snippet will convert all JPEG images to PNG format when saved.

add_filter('image_editor_output_format', 'convert_jpeg_to_png', 10, 3);
function convert_jpeg_to_png($output_format, $filename, $mime_type) {
    if ($mime_type === 'image/jpeg') {
        $output_format['image/jpeg'] = 'image/png';
    }
    return $output_format;
}

Convert all images to WebP format

This code snippet will convert all image formats to WebP format when saved.

add_filter('image_editor_output_format', 'convert_all_to_webp', 10, 3);
function convert_all_to_webp($output_format, $filename, $mime_type) {
    $output_format[$mime_type] = 'image/webp';
    return $output_format;
}

Convert PNG images to JPEG format except for a specific filename

This code snippet will convert PNG images to JPEG format when saved, except for a specific filename.

add_filter('image_editor_output_format', 'convert_png_to_jpeg_except_specific', 10, 3);
function convert_png_to_jpeg_except_specific($output_format, $filename, $mime_type) {
    if ($mime_type === 'image/png' && !strpos($filename, 'specific-image.png')) {
        $output_format['image/png'] = 'image/jpeg';
    }
    return $output_format;
}

Convert GIF images to PNG format if their size is larger than 1MB

This code snippet will convert GIF images to PNG format when saved, if their size is larger than 1MB.

add_filter('image_editor_output_format', 'convert_large_gif_to_png', 10, 3);
function convert_large_gif_to_png($output_format, $filename, $mime_type) {
    if ($mime_type === 'image/gif' && filesize($filename) > 1048576) {
        $output_format['image/gif'] = 'image/png';
    }
    return $output_format;
}

Keep the original image format for a specific folder

This code snippet will keep the original image format for images saved in a specific folder.

add_filter('image_editor_output_format', 'keep_original_format_for_specific_folder', 10, 3);
function keep_original_format_for_specific_folder($output_format, $filename, $mime_type) {
    if (strpos($filename, 'my-folder') !== false) {
        $output_format[$mime_type] = $mime_type;
    }
    return $output_format;
}