java 图片颜色渲染

直接看代码,做图片的颜色渲染.注意一个问题,流不能重复使用,还有一个很重要重要重要的一点

图片不要是百度搜索下载的图片 .webp 然后修改下后缀,当作图片去解析,会报错 报空指针的

public BufferedImage DyeImage(InputStream inputStream, String color){
    try{
        BufferedImage image = ImageIO.read(inputStream);
        BufferedImage dye=null;   
        dye = dye(image, new Color(29, 245, 5, 42));
        return dye;
    }catch(IOException e){
        e.printStackTrace();
        throw new RestException("工作内容图片着色解析失败");
    }
}
private BufferedImage dye(BufferedImage image, Color color){
    int w = image.getWidth();
    int h = image.getHeight();
    BufferedImage dyed = new BufferedImage(w,h,BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = dyed.createGraphics();
    g.drawImage(image, 0,0, null);
    g.setComposite(AlphaComposite.SrcAtop);
    g.setColor(color);
    g.fillRect(0,0,w,h);
    g.dispose();
    return dyed;
}

/**
 * 转换BufferedImage 数据为byte数组
 *

 * Image对象
 * @param format
 * image格式字符串.如"gif","png"
 * @return byte数组
 */
public static byte[] imageToBytes(BufferedImage bImage, String format) {
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    try {
        ImageIO.write(bImage, format, out);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return out.toByteArray();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值