从小我就黑 2020-04-28 14:17 采纳率: 66.7%
浏览 177
已结题

java实现头像截取成正六边形

springboot项目 在做图片处理的时候做过圆形处理 用的 Ellipse2D.Double
现在想请问一下有没有什么方法可以实现同等类似的功能 不过是处理正正六边形 而不是圆形

public void updateForm(String url) throws IOException {
        BufferedImage bi1 = ImageIO.read(new File(url));

        // 根据需要是否使用 BufferedImage.TYPE_INT_ARGB
        BufferedImage bi2 = new BufferedImage(bi1.getWidth(), bi1.getHeight(),
                BufferedImage.TYPE_INT_RGB);

        Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, bi1.getWidth(), bi1
                .getHeight());
        Graphics2D g2 = bi2.createGraphics();
        g2.setBackground(Color.WHITE);
        g2.fill(new Rectangle(bi2.getWidth(), bi2.getHeight()));
        g2.setClip(shape);
        // 使用 setRenderingHint 设置抗锯齿
        g2.drawImage(bi1, 0, 0, null);
        g2.dispose();

        try {
            ImageIO.write(bi2, "jpg", new File(url));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

上面是圆形处理 Ellipse2D.Double这里想换成处理成正六边形的 请教一下各位大佬

  • 写回答

4条回答 默认 最新

  • Fatal Error 2020-04-28 14:41
    关注

    你是要绘制六边形吗?可以使用 Graphics2D 自己绘制;
    如果是要显示六边形头像,个人觉得可以在矩形图像区域上叠加一个中间为六边形掩板实现。

    评论

报告相同问题?

悬赏问题

  • ¥15 使用yolov5-7.0目标检测报错
  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备