【问题标题】:Wordpress thumbs - how to generate Black&white transparent pngWordpress thumbs - 如何生成黑白透明png
【发布时间】:2015-03-30 22:21:41
【问题描述】:

我正在尝试在 wordpres 中生成一个黑白 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 红色(或其他颜色)的黑白徽标。任何人都对此有更好的解决方案 - 不包括对图像进行 Photoshop 处理的那种 ;)。提前谢谢!

【问题讨论】:

    标签: php wordpress image png transparency


    【解决方案1】:

    对于初学者来说,wp_load_image 已被贬值。你应该使用wp_image_editor。我建议使用 wp_image_editor 重写你的函数,看看它在应用 GRAYSCALE 过滤器时是否会产生相同的问题。

    【讨论】:

      猜你喜欢
      • 2012-06-25
      • 2014-08-09
      • 2023-03-24
      • 2015-09-05
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 2016-01-04
      • 2019-01-03
      相关资源
      最近更新 更多