java处理实现滤镜效果之提速、重绘

在处理好各种滤镜效果之后,还有一个问题,就是绘制比较慢,所以我们要做提速处理。

我们之前绘制之所以比较慢,是因为我们每存储一个像素点,就会先把它绘制出来;

那我们提速处理的思路,就是先把所有的像素点都存储起来,再统一绘制。

这里有两种情况:

(1).如果不绘制特殊形状,可以考虑直接设置RGB的值

    //原图
    public void drawImage_01(int[][] imgarr, Graphics g) {
        BufferedImage img = new BufferedImage(imgarr.length, imgarr[0].length, BufferedImage.TYPE_INT_ARGB);
        //如果不绘制特殊形状,可以考虑直接设置RGB值
        for (int i = 0; i < imgarr.length; i++) {
            for (int j = 0; j < imgarr[i].length; j++) {
                int rgb = imgarr[i][j];
                // 把所有的RGB遍历存入BufferedImage中
                img.setRGB(i, j, rgb);
            }
        }
        //一次性绘制这张照片
        g.drawImage(img, X, Y, null);
    }

(2).如果绘制特殊形状,可以通过获取缓冲图的Graphics,在缓冲图上绘制

   //马赛克
    public void 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值