【安卓笔记】-----图片特效之怀旧风格
来源:互联网 发布:康宏爱飞 知乎 编辑:程序博客网 时间:2024/06/10 00:30
分享一个图片特效-------怀旧效果
-------------------------------------------------------------------------------
算法:
经验公式如下:
R = 0.393r+0.769g+0.189b
G = 0.349r+0.686g+0.168b
B = 0.272r+0.534g+0.131b
-------------------------------------------------------------------------------
实现并测试:
新建一个activity,其中核心处理代码在func方法中。
package com.example.graphicsdemo2;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graphics.Paint;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends Activity implements OnClickListener{ private Button but_old = null; private Button but_func = null; private ImageView iv_show = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); but_func = (Button) findViewById(R.id.but_func); but_old = (Button) findViewById(R.id.but_old); iv_show = (ImageView) findViewById(R.id.iv_show); but_func.setOnClickListener(this); but_old.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.but_func: func(); break; case R.id.but_old: iv_show.setImageResource(R.raw.girl); break; } } /** * 怀旧效果 */ public void func() { Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.raw.girl); int width = bitmap.getWidth(); int height = bitmap.getHeight(); Bitmap base = Bitmap.createBitmap(width, height,bitmap.getConfig()); Canvas canvas = new Canvas(base);//以base为模板创建canvas对象 canvas.drawBitmap(bitmap, new Matrix(),new Paint()); int newR,newG,newB; for(int i = 0; i < width; i++)//遍历像素点 { for(int j = 0; j < height; j++) { int current_color = bitmap.getPixel(i, j); int r = Color.red(current_color); int g = Color.green(current_color); int b = Color.blue(current_color); int a = Color.alpha(current_color); /*经验公式*/ newR = (int) (0.393 * r + 0.769 * g + 0.189 * b); newG = (int) (0.349 * r + 0.686 * g + 0.168 * b); newB = (int) (0.272 * r + 0.534 * g + 0.131 * b); int newColor = Color.argb(a, newR > 255 ? 255 : newR, newG > 255 ? 255 : newG, newB > 255 ? 255 : newB); base.setPixel(i, j, newColor); } } bitmap.recycle(); iv_show.setImageBitmap(base); }}
处理前:
处理后:
1 0
- 【安卓笔记】-----图片特效之怀旧风格
- 图像特效之怀旧风格
- android图片特效处理之怀旧效果
- android图片特效处理之怀旧效果
- android图片特效处理之怀旧效果
- android图片特效处理之怀旧效果
- 图像特效---怀旧风格滤镜
- 【安卓笔记】图片特效之底片效果
- 【安卓笔记】图片特效之黑白效果
- 【安卓笔记】图片特效之灰度效果
- 【安卓笔记】图片特效之浮雕效果
- 【安卓笔记】图片特效之底片效果
- Android学习笔记之在图片特效
- 安卓交互之尺寸风格
- 安卓开发笔记之图片存储进数据库
- 安卓图片资源笔记
- 安卓特效
- 笔记15 Animation 安卓特效动画效果 组合动画
- asp.net控件简单总结
- PC上为嵌入式开发算法时遇到的麻烦解决
- 位操作与权限
- hdu 3397 线段树成段更新
- Linux物理内存描述三个层级
- 【安卓笔记】-----图片特效之怀旧风格
- mysql配置之主从复制
- asp.net 三层架构
- 初始化顺序
- 黑马程序员_基础语法
- GDAL数据集官方说明
- 【转载】计算机视觉领域的一些牛人博客,研究机构等的网站链接
- UVA 672 - Gangsters(dp)
- Java多媒体播放器(二)