克隆背面和白色图像到wordpress

时间:2015-02-23 14:32:27

标签: wordpress

上传到wordpress时,我想将图像保存两次,一次是黑白,一次是默认。我有以下代码执行此操作:

add_action('after_setup_theme','bw_images_size');
function bw_images_size() {
    add_image_size('themename-bw-image', get_option('thumbnail_size_w'), get_option('thumbnail_size_h'), false);
}

add_filter('wp_generate_attachment_metadata','themename_bw_filter');
function themename_bw_filter($meta) {
    $file = wp_upload_dir();
    $file = trailingslashit($file['path']).$meta['sizes']['themename-bw-image']['file'];
    list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
    $image = wp_load_image($file);
    imagefilter($image, IMG_FILTER_GRAYSCALE);
    switch ($orig_type) {
        case IMAGETYPE_GIF:
            imagegif( $image, $file );
            break;
        case IMAGETYPE_PNG:
            imagepng( $image, $file );
            break;
        case IMAGETYPE_JPEG:
            imagejpeg( $image, $file );
            break;
    }
    return $meta;
}

问题是它以缩略图大小保存了黑白版本,但我希望它以原始大小保存。我知道这发生在以下行:

add_image_size('themename-bw-image', get_option('thumbnail_size_w'), get_option('thumbnail_size_h'), false);

但我不知道如何在这里获得原始尺寸。怎么办呢?

1 个答案:

答案 0 :(得分:0)

问题在于您指定themename-bw-image的大小与缩略图相同。

相反,请使用更大的尺寸,例如

add_image_size('themename-bw-image', get_option('large_size_w'), get_option('large_size_h'), false);