国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

為你展示RGB彩色圖轉換為灰度圖的源代碼介紹

2020-02-21 17:37:46
字體:
來源:轉載
供稿:網友

很多書籍都沒有詳細的展示Android代碼展示,最近武林技術頻道小編碰巧在項目中使用了它,下文是小編為大家整理的關于為你展示RGB彩色圖轉換為灰度圖的源代碼介紹,希望對你了解這方面內容有所幫助!

實例:RGB2Grey

項目運行效果圖:???????

?????? ?

?

?

源代碼

[java]?
public class MainActivity extends Activity {?

??? /* (non-Javadoc)
???? * @see android.app.Activity#onCreate(android.os.Bundle)
???? */?
??? @Override?
??? public void onCreate(Bundle savedInstanceState) {?
??????? super.onCreate(savedInstanceState);?
??????? setContentView(R.layout.activity_main);?
??????? //通過Id來獲取界面中組件的引用??
??????? Button rgb2greyBtn? = (Button) findViewById(R.id.rgb2greybtn);?
??????? ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);?
??????? final ImageView imageView2 = (ImageView) findViewById(R.id.imageView2);??
??????? //通過位圖工廠,創建一個位圖??
??????? final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_android);?
??????? imageView1.setImageBitmap(bitmap);?
??????? //為“轉換為灰度圖”按鈕添加監聽事件??
??????? rgb2greyBtn.setOnClickListener(new OnClickListener() {?

??????????? @Override?
??????????? public void onClick(View v) {?
??????????????? // TODO Auto-generated method stub??
??????????????? //將轉換過后的灰度圖顯示出來??
??????????????? imageView2.setImageBitmap(convertGreyImg(bitmap));?
??????????? }?
??????? });?

??? }?

??? /**
???? * 將彩色圖轉換為灰度圖
???? * @param img 位圖
???? * @return? 返回轉換好的位圖
???? */?
??? public Bitmap convertGreyImg(Bitmap img) {?
??????? int width = img.getWidth();???????? //獲取位圖的寬??
??????? int height = img.getHeight();?????? //獲取位圖的高??

??????? int []pixels = new int[width * height]; //通過位圖的大小創建像素點數組??

??????? img.getPixels(pixels, 0, width, 0, 0, width, height);?
??????? int alpha = 0xFF ??????? for(int i = 0; i ??????????? for(int j = 0; 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 ??????????????? pixels[width * i + j] = grey;?
??????????? }?
??????? }?
??????? Bitmap result = Bitmap.createBitmap(width, height, Config.RGB_565);?
??????? result.setPixels(pixels, 0, width, 0, 0, width, height);?
??????? return result;?
??? }?
}?

public class MainActivity extends Activity {

??? /* (non-Javadoc)
???? * @see android.app.Activity#onCreate(android.os.Bundle)
???? */
??? @Override
??? public void onCreate(Bundle savedInstanceState) {
??????? super.onCreate(savedInstanceState);
??????? setContentView(R.layout.activity_main);
??????? //通過Id來獲取界面中組件的引用
??????? Button rgb2greyBtn? = (Button) findViewById(R.id.rgb2greybtn);
??????? ImageView imageView1 = (ImageView) findViewById(R.id.imageView1);
??????? final ImageView imageView2 = (ImageView) findViewById(R.id.imageView2);
??????? //通過位圖工廠,創建一個位圖
??????? final Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_android);
??????? imageView1.setImageBitmap(bitmap);
??????? //為“轉換為灰度圖”按鈕添加監聽事件
??????? rgb2greyBtn.setOnClickListener(new OnClickListener() {

???@Override
???public void onClick(View v) {
????// TODO Auto-generated method stub
????//將轉換過后的灰度圖顯示出來
????imageView2.setImageBitmap(convertGreyImg(bitmap));
???}
??});

??? }

??? /**
???? * 將彩色圖轉換為灰度圖
???? * @param img 位圖
???? * @return?返回轉換好的位圖
???? */
??? public Bitmap convertGreyImg(Bitmap img) {
??? ?int width = img.getWidth();???//獲取位圖的寬
??? ?int height = img.getHeight();??//獲取位圖的高

??? ?int []pixels = new int[width * height];?//通過位圖的大小創建像素點數組

??? ?img.getPixels(pixels, 0, width, 0, 0, width, height);
??? ?int alpha = 0xFF ??? ?for(int i = 0; i ??? ??for(int j = 0; 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 ??? ???pixels[width * i + j] = grey;
??? ??}
??? ?}
??? ?Bitmap result = Bitmap.createBitmap(width, height, Config.RGB_565);
??? ?result.setPixels(pixels, 0, width, 0, 0, width, height);
??? ?return result;
??? }
}
?

布局文件:

[html]?
??? xmlns:tools="http://schemas.android.com/tools"?
??? android:id="@+id/LinearLayout1"?
??? android:layout_width="match_parent"?
??? android:layout_height="match_parent"?
??? android:orientation="vertical" >?
??? ??????? android:id="@+id/imageView1"?
??????? android:layout_width="wrap_content"?
??????? android:layout_height="wrap_content"?
??????? android:layout_gravity="center_horizontal"?
??????? />?
??? ??????? android:id="@+id/rgb2greybtn"?
??????? android:layout_width="wrap_content"?
??????? android:layout_height="wrap_content"?
??????? android:text="@string/rgb2greybtn"?
??????? android:layout_gravity="center_horizontal"/>?
??? ??????? android:id="@+id/imageView2"?
??????? android:layout_width="wrap_content"?
??????? android:layout_height="wrap_content"?
??????? android:layout_gravity="center_horizontal"?
??????? />"?
?

??? xmlns:tools="http://schemas.android.com/tools"
??? android:id="@+id/LinearLayout1"
??? android:layout_width="match_parent"
??? android:layout_height="match_parent"
??? android:orientation="vertical" >
? ???? android:id="@+id/imageView1"
???? android:layout_width="wrap_content"
???? android:layout_height="wrap_content"
???? android:layout_gravity="center_horizontal"
???? />
? ???? android:id="@+id/rgb2greybtn"
???? android:layout_width="wrap_content"
???? android:layout_height="wrap_content"
???? android:text="@string/rgb2greybtn"
???? android:layout_gravity="center_horizontal"/>
? ???? android:id="@+id/imageView2"
???? android:layout_width="wrap_content"
???? android:layout_height="wrap_content"
???? android:layout_gravity="center_horizontal"
???? />"

上文是關于為你展示RGB彩色圖轉換為灰度圖的源代碼介紹,相信大家都有了一定的了解,想要了解更多的技術內容,請繼續關注武林技術頻道吧!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潼关县| 武义县| 武定县| 定远县| 始兴县| 三亚市| 博白县| 江孜县| 松潘县| 东乌珠穆沁旗| 锡林郭勒盟| 商都县| 色达县| 三亚市| 固始县| 仁化县| 进贤县| 德庆县| 大田县| 海林市| 邢台县| 蒲江县| 将乐县| 错那县| 鞍山市| 黔江区| 林西县| 昆山市| 五莲县| 玉屏| 钟山县| 乳源| 乌兰浩特市| 大厂| 怀仁县| 阿鲁科尔沁旗| 伊宁市| 阳谷县| 观塘区| 平和县| 武汉市|