Wordpress大拇指 - 如何生成黑色和白色透明png

时间:2015-01-31 14:48:04

标签: php wordpress image png transparency

我试图在wordpres中生成一个b& w png拇指。问题是我上传的png具有透明度。它们是我在灰度中需要的合作伙伴的不同徽标,以匹配模板的设计。

到目前为止,我得到了这个:

// add thumb size
add_image_size('pvz-partnerbw-image', 9999, 64, false);

// Generate BW thumbnail
add_filter('wp_generate_attachment_metadata','pvz_bw_filter');
function pvz_bw_filter($meta) {
    $file = wp_upload_dir();
    $file = trailingslashit($file['path']).$meta['sizes']['pvz-partnerbw-image']['file'];
    list($orig_w, $orig_h, $orig_type) = @getimagesize($file);
    $image = wp_load_image($file);
    imagefilter($image, IMG_FILTER_GRAYSCALE);
    imagesavealpha($image,true);

    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;
}

它几乎可以工作但问题是在艺术品和透明背景之间的边缘上颜色保持不变。所以我得到了1px红色(或其他颜色)的b& w徽标。任何人都有一个更好的解决方案 - 没有包括Photoshoping图像的那种;)。提前谢谢!

1 个答案:

答案 0 :(得分:0)

首先,wp_load_image已被折旧。您应该使用wp_image_editor。我建议使用wp_image_editor重写你的函数,看它是否会在应用GRAYSCALE过滤器时产生同样的问题。