Android编程之图片颜色处理方法

Android编程之图片颜色处理方法,第1张

概述本文实例讲述了Android编程之图片颜色处理方法。分享给大家供大家参考,具体如下:

本文实例讲述了AndroID编程之图片颜色处理方法。分享给大家供大家参考,具体如下:

你想做到跟美图秀秀一样可以处理自己的照片,美化自己的照片吗?其实你也可以自己做一个这样的软件,废话不多说了,直接上图,上代码了!

效果图如下:

没处理前:

处理之后:

MainActivity.java的代码如下:

package net.loonggg.test; import androID.app.Activity; import androID.graphics.Bitmap; import androID.graphics.BitmapFactory; import androID.graphics.Canvas; import androID.graphics.color; import androID.graphics.colorMatrix; import androID.graphics.colorMatrixcolorFilter; import androID.graphics.Matrix; import androID.graphics.Paint; import androID.os.Bundle; import androID.Widget.ImageVIEw; import androID.Widget.Seekbar; import androID.Widget.Seekbar.OnSeekbarchangelistener; public class MainActivity extends Activity {   private Seekbar sb1,sb2,sb3,sb4,sb5;   private ImageVIEw iv;   private Bitmap bitmap,updateBitmap;   private Canvas canvas;   private Paint paint;   @OverrIDe   protected voID onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentVIEw(R.layout.activity_main);     iv = (ImageVIEw) findVIEwByID(R.ID.iv);     sb1 = (Seekbar) findVIEwByID(R.ID.sb1);     sb2 = (Seekbar) findVIEwByID(R.ID.sb2);     sb3 = (Seekbar) findVIEwByID(R.ID.sb3);     sb4 = (Seekbar) findVIEwByID(R.ID.sb4);     sb5 = (Seekbar) findVIEwByID(R.ID.sb5);     bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.b);     updateBitmap = Bitmap.createBitmap(bitmap.getWIDth(),bitmap.getHeight(),bitmap.getConfig());     canvas = new Canvas(updateBitmap);     paint = new Paint();     final colorMatrix cm = new colorMatrix();     paint.setcolorFilter(new colorMatrixcolorFilter(cm));     paint.setcolor(color.BLACK);     paint.setAntiAlias(true);     final Matrix matrix = new Matrix();     canvas.drawBitmap(bitmap,matrix,paint);     iv.setimageBitmap(updateBitmap);     /**      * RGB三原色 红色值的设置      */     sb1.setonSeekbarchangelistener(new OnSeekbarchangelistener() {       @OverrIDe       public voID onStopTrackingtouch(Seekbar seekbar) {         int progress = seekbar.getProgress();         cm.set(new float[] { progress / 128f,// 红色值             0,1,// 绿色值             0,// 蓝色值             0,0 // 透明度         });         paint.setcolorFilter(new colorMatrixcolorFilter(cm));         canvas.drawBitmap(bitmap,paint);         iv.setimageBitmap(updateBitmap);       }       @OverrIDe       public voID onStartTrackingtouch(Seekbar seekbar) {       }       @OverrIDe       public voID onProgressChanged(Seekbar seekbar,int progress,boolean fromUser) {       }     });     /**      * RGB三原色 绿色值的设置      */     sb2.setonSeekbarchangelistener(new OnSeekbarchangelistener() {       @OverrIDe       public voID onStopTrackingtouch(Seekbar seekbar) {         int progress = seekbar.getProgress();         cm.set(new float[] { 1,progress / 128f,boolean fromUser) {       }     });     /**      * RGB三原色 蓝色值的设置      */     sb3.setonSeekbarchangelistener(new OnSeekbarchangelistener() {       @OverrIDe       public voID onStopTrackingtouch(Seekbar seekbar) {         int progress = seekbar.getProgress();         cm.set(new float[] { 1,boolean fromUser) {       }     });     /**      * RGB三原色 三个值都改变为设置饱和度(亮度)      */     sb4.setonSeekbarchangelistener(new OnSeekbarchangelistener() {       @OverrIDe       public voID onStopTrackingtouch(Seekbar seekbar) {         int progress = seekbar.getProgress();         cm.set(new float[] { progress / 128f,boolean fromUser) {       }     });     /**      * RGB三原色 设置透明度      */     sb5.setonSeekbarchangelistener(new OnSeekbarchangelistener() {       @OverrIDe       public voID onStopTrackingtouch(Seekbar seekbar) {         int progress = seekbar.getProgress();         cm.set(new float[] { 1,boolean fromUser) {       }     });   } }

布局文件代码如下:

<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"   xmlns:tools="http://schemas.androID.com/tools"   androID:layout_wIDth="match_parent"   androID:layout_height="match_parent"   androID:background="#CDCDCD"   androID:orIEntation="vertical"   tools:context=".MainActivity" >   <ImageVIEw     androID:ID="@+ID/iv"     androID:layout_wIDth="fill_parent"     androID:layout_height="wrap_content" />   <linearLayout     androID:layout_wIDth="fill_parent"     androID:layout_height="wrap_content"     androID:gravity="center_vertical"     androID:orIEntation="horizontal"     androID:padding="10dp" >     <TextVIEw       androID:layout_wIDth="wrap_content"       androID:layout_height="wrap_content"       androID:text="红色:"       androID:textcolor="#FF0000"       androID:textSize="24sp" />     <Seekbar       androID:ID="@+ID/sb1"       androID:layout_wIDth="fill_parent"       androID:layout_height="wrap_content"       androID:max="256"       androID:progress="128" />   </linearLayout>   <linearLayout     androID:layout_wIDth="fill_parent"     androID:layout_height="wrap_content"     androID:gravity="center_vertical"     androID:orIEntation="horizontal"     androID:padding="10dp" >     <TextVIEw       androID:layout_wIDth="wrap_content"       androID:layout_height="wrap_content"       androID:text="绿色:"       androID:textcolor="#00FF00"       androID:textSize="24sp" />     <Seekbar       androID:ID="@+ID/sb2"       androID:layout_wIDth="fill_parent"       androID:layout_height="wrap_content"       androID:max="256"       androID:progress="128" />   </linearLayout>   <linearLayout     androID:layout_wIDth="fill_parent"     androID:layout_height="wrap_content"     androID:gravity="center_vertical"     androID:orIEntation="horizontal"     androID:padding="10dp" >     <TextVIEw       androID:layout_wIDth="wrap_content"       androID:layout_height="wrap_content"       androID:text="蓝色:"       androID:textcolor="#0000FF"       androID:textSize="24sp" />     <Seekbar       androID:ID="@+ID/sb3"       androID:layout_wIDth="fill_parent"       androID:layout_height="wrap_content"       androID:max="256"       androID:progress="128" />   </linearLayout>   <linearLayout     androID:layout_wIDth="fill_parent"     androID:layout_height="wrap_content"     androID:gravity="center_vertical"     androID:orIEntation="horizontal"     androID:padding="10dp" >     <TextVIEw       androID:layout_wIDth="wrap_content"       androID:layout_height="wrap_content"       androID:text="饱和度:"       androID:textcolor="#000000"       androID:textSize="16.5sp" />     <Seekbar       androID:ID="@+ID/sb4"       androID:layout_wIDth="fill_parent"       androID:layout_height="wrap_content"       androID:max="256"       androID:progress="128" />   </linearLayout>   <linearLayout     androID:layout_wIDth="fill_parent"     androID:layout_height="wrap_content"     androID:gravity="center_vertical"     androID:orIEntation="horizontal"     androID:padding="10dp" >     <TextVIEw       androID:layout_wIDth="wrap_content"       androID:layout_height="wrap_content"       androID:text="透明度:"       androID:textcolor="#000000"       androID:textSize="16.5sp" />     <Seekbar       androID:ID="@+ID/sb5"       androID:layout_wIDth="fill_parent"       androID:layout_height="wrap_content"       androID:max="256"       androID:progress="128" />   </linearLayout> </linearLayout>

到这里就完了,看明白了吗?

希望本文所述对大家AndroID程序设计有所帮助。

总结

以上是内存溢出为你收集整理的Android编程之图片颜色处理方法全部内容,希望文章能够帮你解决Android编程之图片颜色处理方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1142243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存