我正在尝试创建我上传的图像的灰度图像。我已经能够上传图像并使用以下代码创建灰度版本:
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
}
你知道为什么我不能输出黑白图像吗?
提前谢谢。
最合适的回答,由SO网友:Lucio Coire Galibone 整理而成
您必须使用新的b&;添加元数据信息;w缩略图:
$meta[\'sizes\'][\'thumbnail-bw\'] = array(
\'width\' => $meta[\'width\'],
\'height\' => $meta[\'height\'],
\'file\' => $file
);
生成新图像后(在
switch
块)。
还有一个插件,叫做Grayscale, 这正是你所需要的。