无法输出使用ADD_IMAGE_SIZE创建的灰度图像

时间:2013-11-25 作者:asaunders

我正在尝试创建我上传的图像的灰度图像。我已经能够上传图像并使用以下代码创建灰度版本:

add_action(\'after_setup_theme\',\'bw_images_size\');
function bw_images_size() {
    $crop = get_option(\'thumbnail_crop\')==1 ? true : false;
    add_image_size(\'thumbnail-bw\', \'\', \'\', $crop);
}

add_filter(\'wp_generate_attachment_metadata\',\'bw_images_filter\');
function bw_images_filter($meta) {
    $file = wp_upload_dir();
    $file = $file[\'basedir\'] . \'/\' . $meta[\'file\'];

    list($orig_w, $orig_h, $orig_type) = @getimagesize($file);

    $image = wp_load_image($file);
    imagefilter($image, IMG_FILTER_GRAYSCALE);


    //imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);
    switch ($orig_type) {
        case IMAGETYPE_GIF:
            $file = str_replace(".gif", "-bw.gif", $file);
            imagegif( $image, $file );
            break;
        case IMAGETYPE_PNG:
            $file = str_replace(".png", "-bw.png", $file);
            imagepng( $image, $file );
            break;
        case IMAGETYPE_JPEG:
            $file = str_replace(".jpg", "-bw.jpg", $file);
            imagejpeg( $image, $file );
            break;
    }

    return $meta;
}
我的问题是当我尝试在模板中输出图像时;我刚得到彩色版本的副本。我像这样输出图像:

if ( has_post_thumbnail() ) {
    ?>
    <div class=\'colour_testimonial\'>
        <?php the_post_thumbnail(); ?>
    </div>
    <div class=\'bw_testimonial\'>
        <?php the_post_thumbnail(\'thumbnail-bw\'); ?>
    </div>
    <?php
}
你知道为什么我不能输出黑白图像吗?

提前谢谢。

1 个回复
最合适的回答,由SO网友:Lucio Coire Galibone 整理而成

您必须使用新的b&;添加元数据信息;w缩略图:

$meta[\'sizes\'][\'thumbnail-bw\'] = array(
  \'width\' => $meta[\'width\'], 
  \'height\' => $meta[\'height\'],
  \'file\' => $file
);
生成新图像后(在switch 块)。

还有一个插件,叫做Grayscale, 这正是你所需要的。

结束

相关推荐

Adding Relevant Post Images

我想在每个帖子页面的末尾添加相关帖子with an image 在我新创建的网站中http://www.techberita.com但作为一个初学者,这对我来说是一个很大的问题,因为我不能做到这一点,因为我对PHP和wordpress没有太多的知识。我搜索了一些插件,但没有找到一个好的插件。我希望很快得到答复。最好使用php代码。