博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图片处理--浮雕特效
阅读量:7050 次
发布时间:2019-06-28

本文共 1815 字,大约阅读时间需要 6 分钟。

1、算法

第一步:从右下到左上遍历图片像素

第二步:获取当前像素和 左上点像素,分别取它们RGB的差值

第三步:获取三个差值中绝对值最大的一个作为灰度值

第四步:将该灰度值加128 ,并且作像素安全处理(即gray = gray>255?255:gray , gray = gray<0 ? 0 : gray)

第五步:使用该灰度值创建图片

2、实现代码

public Bitmap render(Bitmap bitmap)    {        if (bitmap == null)            return null;//        bitmap = toGray(bitmap);        int width = bitmap.getWidth();        int height = bitmap.getHeight();        int[] pixels = new int[width * height];        bitmap.getPixels(pixels, 0, width, 0, 0, width, height);        for (int i = height - 1; i > 0; i--)        {            for (int j = width - 1; j > 0; j--)            {                int pixel = pixels[i * width + j];                int leftUpPixel = pixels[(i - 1) * width + j - 1];                int r = (pixel & 0x00ff0000) >> 16;                int g = (pixel & 0x0000ff00) >> 8;                int b = (pixel & 0x000000ff);                                int leftUpR = (leftUpPixel & 0x00ff0000) >> 16;                int leftUpG = (leftUpPixel & 0x0000ff00) >> 8;                int leftUpB = (leftUpPixel & 0x000000ff);                                r = r - leftUpR;                g = g - leftUpG;                b = b - leftUpB;                                int maxDiff = r;                if(Math.abs(maxDiff) < Math.abs(g));                {                    maxDiff = g;                }                                if(Math.abs(maxDiff) < Math.abs(b))                {                    maxDiff = b;                }                                int gray = maxDiff +128;                        if(gray>255)gray = 255;                if(gray <0)gray = 0;                pixels[i * width + j] = (pixel & 0xff000000) + (gray << 16) + (gray << 8) + gray;            }        }        return Bitmap.createBitmap(pixels, width, height, Config.ARGB_8888);    }

转载地址:http://yqdol.baihongyu.com/

你可能感兴趣的文章
js时间戳格式化成日期格式的多种方法
查看>>
gdb fabs错误输出
查看>>
jquery-plugin-biggerLink,highLight-层加亮_andy 阳光生活_百度空间
查看>>
最快破亿还是荣耀,这是年轻人的狂欢
查看>>
西藏世界级英雄史诗《格萨尔》藏译汉项目已出版15部书籍
查看>>
远海星空什么样?远望7号带你看银河
查看>>
深入理解javascript系列(十五):高阶函数
查看>>
客户端动态化系列之——Weex
查看>>
BCTF Writeup
查看>>
Material Design 控件知识梳理(1) Android Design Support Library 是什么
查看>>
深入理解HTTPS协议
查看>>
App启动页面优化
查看>>
HTTP协议的特点
查看>>
聊聊flink的ConnectionManager
查看>>
聊聊hikari连接池的idleTimeout及minimumIdle属性
查看>>
设计模式 | 迭代器模式及典型应用
查看>>
1小时学会:最简单的iOS直播推流(十一)sps&pps和AudioSpecificConfig介绍(完结)...
查看>>
Oracle APEX 系列文章6:Oracle APEX 到底适不适合企业环境?
查看>>
ubuntu搭建nodejs生产环境——快速部署手册
查看>>
探索解析微服务下的RabbitMQ
查看>>