程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> MIDP2.0中對圖片象素級處理(1)

MIDP2.0中對圖片象素級處理(1)

編輯:關於JAVA

MIDP2.0中提供了對圖片的象素級的處理,利用這一點,我們可以對圖片進行相關的處理,比如半透明,把彩色圖片處理成灰度圖片,以及圖片變色效果都可以在J2ME裡很方便地實現。

在進行這些操作之前,我們必須先了解Java中的一些位操作符:

<<>>&|,主要是這幾個操作符,下面我們就開始我們的操作

1、半透明處理

PNG裡每個象素是一個ARBG格式,是一個8位的十六進制的數字,比如0xff121212,這個東西描述了圖片的一個象素,我們可以通過Image類中的getRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height) 方法獲得一個rgbData,這個rgbData就保存了圖片所對應的象素信息,取出象素信息之後我們需要對其進行透明效果的處理,透明效果的值是保存在8位中的最高2位,你可以把這個象素值轉換成16進制輸出,一般情況下最高2位應該都是為FF,也就是不透明,我們現在需要把這個FF改成一個比他小的值,那麼我們的圖片就透明了,最高位為00的時候圖片就全透明了

其實816進制對應了32位的2進制,那麼我們可以通過下面的方法取出他的最高2

A = Argb>>24//把這個數向右移動24位,那麼剩下的8位就是我們要的最高位了

修改之後我們再通過下面的方法可以把他存回去

Argb = a<<24 |( argb & 0x00FFFFFF);

那麼我們通過循環把這個圖片的所有象素信息都改變之後,在用改變的象素信息來構造一個圖片,或者這個通過我們的Graphics 下面的drawRGB方法直接畫出來的就是一個半透明效果的圖片了,你可以在畫這個圖片之前先畫一個其他的圖片,這樣你就可以很明顯地看到效果了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved