仿淘宝店铺生成名片

生成的样式

在这里插入图片描述
在写这个的时候遇到了一个问题:生成的图片蒙上了一层红色,
网上说是由于ImageIO.read这个方法导致的,解决办法是替换ImageIO.read方法使用 Toolkit.getDefaultToolkit().getImage

一、
Image src=Toolkit.getDefaultToolkit().getImage(file.getPath());  
BufferedImage image=BufferedImageBuilder.toBufferedImage(src);//Image to BufferedImage
二、
Image imageTookit = Toolkit.getDefaultToolkit().createImage(bytes);  
BufferedImage cutImage = BufferedImageBuilder.toBufferedImage(imageTookit);
BufferedImageBuilder源码
public static BufferedImage toBufferedImage(Image image) {  
        if (image instanceof BufferedImage) {  
            return (BufferedImage) image;  
        }  
        // This code ensures that all the pixels in the image are loaded  
        image = new ImageIcon(image).getImage();  
        BufferedImage bimage = null;  
        GraphicsEnvironment ge = GraphicsEnvironment  
                .getLocalGraphicsEnvironment();  
        try {  
            int transparency = Transparency.OPAQUE;  
            GraphicsDevice gs = ge.getDefaultScreenDevice();  
            GraphicsConfiguration gc = gs.getDefaultConfiguration();  
            bimage = gc.createCompatibleImage(image.getWidth(null),  
                    image.getHeight(null), transparency);  
        } catch (HeadlessException e) {  
            // The system does not have a screen  
        }  
        if (bimage == null) {  
            // Create a buffered image using the default color model  
            int type = BufferedImage.TYPE_INT_RGB;  
            bimage = new BufferedImage(image.getWidth(null),  
                    image.getHeight(null), type);  
        }  
        // Copy image to buffered image  
        Graphics g = bimage.createGraphics();  
        // Paint the image onto the buffered image  
        g.drawImage(image, 0, 0, null);  
        g.dispose();  
        return bimage;  
}

但在我这里更换后并没有起到作用,
我的图片生成的为红色是因为背景图片上设置了透明,可能是因为jpg不支持透明色的原因导致图片蒙上红色

1、
ImageIO.write(bg, "png", new File("C:\\\\Users\\\\Administrator\\\\Desktop\\\\image\\\\1a.jpg"));
输出正常
2、
ImageIO.write(bg, "jpg", new File("C:\\\\Users\\\\Administrator\\\\Desktop\\\\image\\\\1a.jpg"));
输出红色图片

代码地址:https://github.com/secret1base/qrcode

参考:https://blog.csdn.net/qing_gee/article/details/77341821

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值