Fresco编辑图片成黑白色
来源:互联网 发布:nba数据网 编辑:程序博客网 时间:2024/04/27 14:54
项目中有个需求,需要把图片转成黑白色,之后变回原图的彩色,由于图片框架使用的是facebook的fresco
,查看文档有个后处理器postprocessor,其实也比较简单
/** * 显示图片灰度的后处理器 */Postprocessor redMeshPostprocessor = new BasePostprocessor() {@Override public String getName() { return "redMeshPostprocessor"; } @Override public void process(Bitmap bitmap) { int width = bitmap.getWidth(); //获取位图的宽 int height = bitmap.getHeight(); //获取位图的高 int []pixels = new int[width * height]; //通过位图的大小创建像素点数组 bitmap.getPixels(pixels, 0, width, 0, 0, width, height); int alpha = 0xFF << 24; for(int i = 0; i < height; i++) { for(int j = 0; j < width; j++) { int grey = pixels[width * i + j]; int red = ((grey & 0x00FF0000 ) >> 16); int green = ((grey & 0x0000FF00) >> 8); int blue = (grey & 0x000000FF); grey = (int)((float) red * 0.3 + (float)green * 0.59 + (float)blue * 0.11); grey = alpha | (grey << 16) | (grey << 8) | grey; pixels[width * i + j] = grey; } } bitmap.setPixels(pixels, 0, width, 0, 0, width, height); }};
调用方式
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(currentImgUrl) .setPostprocessor(redMeshPostprocessor) .build(); PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder() .setImageRequest(request) .setOldController(guess_img.getController()) // other setters as you need .build(); guess_img.setController(controller);
0 0
- Fresco编辑图片成黑白色
- 把网站首页设置成黑白色
- 网页黑白色
- 爱情只有黑白色
- 解决在SecureCRT中使用VIM编辑代码只有黑白色
- 解决在SecureCRT中使用VIM编辑代码只有黑白色
- 笔记:生成的.9图为黑白色且不可编辑
- CAD图像打印成黑白色的步骤
- 图片的底片效果、老照片效果、浮雕效果、黑白色效果
- 网页显示为黑白色
- 让整站编程黑白色---哀悼用
- 用代码使网页变成黑白色
- 立方体的纹理映射(黑白色交替)
- 关于ffmpeg录制图像是黑白色
- cocos2d-x将CCSprite转为黑白色
- iOS 状态栏StateBar文字黑白色控制
- 全国哀悼日,网站变成黑白色
- 教你将CAD转成PDF黑白色
- 实践C++ 代码维护的思考
- 我的C++技巧总结
- 【转】内存溢出处理方法
- 蘑菇街-社会化电商平台技术架构探索与实践
- 顶级游戏设计大师谈如何成为一名游戏设计师
- Fresco编辑图片成黑白色
- 提升员工士气的七大*法则
- 图像处理(九)人物肖像风格转换-Siggraph 2014
- 【转】java 中异常处理原则
- Java中的serialize接口与transient关键字
- MySQL导库命令
- 【转】缩小mysql数据库的ibdata1文件
- 我的C++笔记
- 编程:休息片刻的好处