下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】Android開發(fā)中如何實(shí)現(xiàn)圖片灰階顯示
這篇文章將為大家詳細(xì)講解有關(guān)Android開發(fā)中如何實(shí)現(xiàn)圖片灰階顯示,在下覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
灰階顯示圖片的典型應(yīng)用就是用戶頭像,如用戶在線頭像顯示彩色(原圖),不在線顯示灰色(黑白圖)??偨Y(jié)一點(diǎn)就是更加一張?jiān)紙D片來通過顏色的過濾處理計(jì)算得到不同顯示效果的圖片。這方法的API主要位于:android.
使用上文中提到的“三種算法轉(zhuǎn)換彩色灰階”一文中提到的灰階計(jì)算方法產(chǎn)生的黑白圖片顯示效果如下圖:
說明:通過UseMatrix是使用Android的ColorMatrix和ColorFilter實(shí)現(xiàn),其中設(shè)置ColorMatrix的setSaturation(floatsat)飽和度設(shè)置為0時(shí)顏色過濾之后顯示灰階,android.graphics.ColorMatrix的內(nèi)部實(shí)現(xiàn)和具體RGB顏色權(quán)重值近似等于圖中BT709中的權(quán)重。
代碼示例(依賴此文中附加的灰階計(jì)算方法封裝類)
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grayscale);
ButterKnife.bind(this);
BitmapDrawable
bd
=
(BitmapDrawable)
Original_ImageView.getDrawable();
Bitmap
bitmap
=
bd.getBitmap();
Log.d(TAG,
"
w="
+
bitmap.getWidth()
+
",
h="
+
bitmap.getHeight()
+
",
c="
+
bitmap.getConfig().toString());
//0
BT709
Bitmap
matrix
=
Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas
canvas
=
new
Canvas(matrix);
Paint
paint
=
new
Paint();
ColorMatrix
colorMatrix
=
new
ColorMatrix();
//傳入一個(gè)大于1的數(shù)字將增加飽和度,而傳入一個(gè)0~1之間的數(shù)字會(huì)減少飽和度。0值將產(chǎn)生一幅灰度圖像
//Android
ColorMatrix
默認(rèn)的灰階計(jì)算采用下面的BT709標(biāo)準(zhǔn)
colorMatrix.setSaturation(0f);
ColorMatrixColorFilter
colorMatrixColorFilter
=
new
ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(colorMatrixColorFilter);
canvas.drawBitmap(bitmap,
0f,
0f,
paint);
Matrix_ImageView.setImageBitmap(matrix);
//原始圖片
Bitmap
sunflower
=
XUtils.BitmapUtil.decodeMutableBitmapFromResourceId(this,
R.drawable.sunflower);
//1
Bitmap
lightness
=
grayScale(sunflower,
XUtils.GrayScaleUtil.GrayScale.Lightness);
Lightness_ImageView.setImageBitmap(lightness);
//2
Bitmap
average
=
grayScale(sunflower,
XUtils.GrayScaleUtil.GrayScale.Average);
Average_ImageView.setImageBitmap(average);
//3
Bitmap
luminosity
=
grayScale(sunflower,
XUtils.GrayScaleUtil.GrayScale.Luminosity);
Luminosity_ImageView.setImageBitmap(luminosity);
//4
Bitmap
bt709
=
grayScale(sunflower,
XUtils.GrayScaleUtil.GrayScale.BT709);
BT709_ImageView.setImageBitmap(bt709);
//5
Bitmap
rmy
=
grayScale(sunflower,
XUtils.GrayScaleUtil.GrayScale.RMY);
RMY_ImageView.setImageBitmap(rmy);
//6
Bitmap
y
=
grayScale(sunflower,
XUtils.GrayScaleUtil.GrayScale.Y);
Y_ImageView.setImageBitmap(y);
}
public
Bitmap
grayScale(final
Bitmap
bitmap,
XUtils.GrayScaleUtil.GrayScale
grayScale)
{
if
(null
==
bitmap
||
null
==
grayScale)
{
return
null;
}
Bitmap
rs
=
Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas
canvas
=
new
Canvas(rs);
Paint
paint
=
new
Paint();
for
(int
x
=
0,
w
=
bitmap.getWidth();
x
<
w;
x++)
{
for
(int
y
=
0,
h
=
bitmap.getHeight();
y
<
h;
y++)
{
int
c
=
bitmap.getPixel(x,
y);
int
a
=
Color.alpha(c);
int
r
=
Color.red(c);
int
g
=
Color.red(c);
int
b
=
Color.blue(c);
int
gc
=
grayScale.grayScale(r,
g,
b);
paint.setColor(Color.argb(a,
gc,
gc,
gc));
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人知識(shí)產(chǎn)權(quán)反擔(dān)保承諾書示例2篇
- 2025版美容院美容課程設(shè)計(jì)與教學(xué)合同4篇
- 醫(yī)療資源分配倫理-第3篇-深度研究
- 二零二五版新能源電池租賃合作協(xié)議3篇
- 二零二五年度模特個(gè)人品牌合作開發(fā)合同4篇
- 人體工程學(xué)在室內(nèi)-深度研究
- 公共文化服務(wù)中弱勢(shì)群體的需求調(diào)查與分析-深度研究
- 二零二五年度新型零售業(yè)態(tài)合作經(jīng)營(yíng)合同文本4篇
- 2025年度個(gè)人二手車買賣價(jià)格談判與調(diào)整合同
- 二零二五版內(nèi)墻涂料產(chǎn)品責(zé)任險(xiǎn)投保合同4篇
- 室上性心動(dòng)過速-醫(yī)學(xué)課件
- 建設(shè)工程法規(guī)及相關(guān)知識(shí)試題附答案
- 中小學(xué)心理健康教育課程標(biāo)準(zhǔn)
- 四年級(jí)上冊(cè)脫式計(jì)算400題及答案
- 新課標(biāo)人教版小學(xué)數(shù)學(xué)六年級(jí)下冊(cè)集體備課教學(xué)案全冊(cè)表格式
- 人教精通版三年級(jí)英語上冊(cè)各單元知識(shí)點(diǎn)匯總
- 人口分布 高一地理下學(xué)期人教版 必修第二冊(cè)
- 教案:第三章 公共管理職能(《公共管理學(xué)》課程)
- 諾和關(guān)懷俱樂部對(duì)外介紹
- 玩轉(zhuǎn)數(shù)和形課件
- 保定市縣級(jí)地圖PPT可編輯矢量行政區(qū)劃(河北省)
評(píng)論
0/150
提交評(píng)論