J2ME圖象的處理

一 Image類

 所屬包名:javax.microedition.lcdui

  方法:
   ㈠   createImage創建不可變圖像

1   從一個指定名稱的源圖象文件中創建一個不可改變的圖象

          語法:public static Image createImage(String name ) throws IOException

          name   源圖像名稱

2  從一個字節數組存儲中創建一個不可變圖象

         語法:public static Image createImage(byte[ ] imageData, int imageOffset ,int imageLength)

          imageData  圖像字節數組

          imageOffset   起始數據位置

          imageLength    數據的長度

3    從二進制數據流中創建一個不可變圖象

       語法:public static Image createImage(java.io.InputStream stream) throws java.io.IOException

          stream   包含圖象數據字節流

㈡ 用drawImage把圖象繪製到手機屏幕上去

     語法:public void drawImage(Image img, int x, int y, int anchor )

    x,y軸座標,anchor 基點

    設置x,y點是哪個基點,基點9種位置

    
用法:   g.drawImage( image, 50,50, HCENTER | VCENTER )

㈢ 創建可變圖像

 1  方法: public static Image createImage(int width, int height )

  2  創建一個繪製可變圖像的Graphics對象,用getGraphics方法
      public Graphics  getGraphics( )

  3  檢測圖像是否可變,用isMutable方法
      public boolean isMutable( )

  4 不可變圖像不能轉化成可變圖像,但是可變圖像可以轉化爲不可變圖像,用的是
    public static Image createImage( Image source )
     source  源圖像

㈣圖像方位的變換

  語法 :  public static Image createImage(Imge image , int x, int y, int width, int height ,int transform  )
    x,y是圖像左上角的座標,width和height是圖像的寬度和高度
    transform的值
            Sprite.TRANS_NONE      取值  0   效果:保持原位
            Sprite.TRANS_ROT90     取值  5   效果:順時針旋轉90度
            Sprite.TRANS_ROT180   取值  3   效果:順時針旋轉180度
            Sprite.TRANS_ROT270   取值  6   效果:順時針旋轉270度
            Sprite.TRANS_MIRROR   取值  2   效果:沿垂直軸翻轉
            Sprite.TRANS_MIRROR_ROT90   取值  7     效果:沿垂直軸翻轉再順時針旋轉90度
            Sprite.TRANS_MIRROR_ROT180   取值  1   效果:沿垂直軸翻轉再順時針旋轉180度
            Sprite.TRANS_MIRROR_ROT270   取值  4   效果:沿垂直軸翻轉再順時針旋轉270度

㈤ 透明度的處理

    語法:   public static Image createRGBImage( int[ ] rgb, int width, int height, boolean  processAlpha )
      rgb  以0xAARRGGBB格式存儲ARGB圖像的數組
      width ,height 圖像的寬度和高度
       processAlpha   true圖像數據包含透明數據,false圖像數據不包含透明數據

    用GetRGB獲取圖像中一個指定區域ARGB數據
   public void getRBG( int  [ ] rgbData ,int offset ,int scanlength ,int x, int y ,int width ,int height )
   rgbData   以0xAARRGGBB格式存儲ARGB圖像的數組
   offset     第一個圖像數據在ARPG數組中對應的元素索引
   scanlength    圖像每行數據個數
   x,y  圖像區域左上角座標     width height 繪製圖像區域的寬度和高度

二    TiledLayer類

  所屬包名:javax.microedition.lcdui.game

  ㈠構造器的語法
   public TiledLayer ( int columns, int rows, Image image, int tileWidth ,int tileHeight )
    columns   背景寬度,以所佔單元格數量爲單位
    rows    背景的高度,以所佔單元格數量爲單位
     image  包含構成背景各幅圖塊的整體圖像對象
    tileWidth   每幅圖塊的寬度,以像素爲單位
    tileHeight  每幅圖塊的高度,以像素爲單位

 在後期可以用setStaticTileSet( )方法重新爲TiledLayer類實例指定圖塊對象
   public void setStaticTileSet( Image image, int tileWidth ,int tileHeight )

㈡靜態場景處理

   爲單元格設定靜態圖塊
public void setCell ( int col, int row ,int tileIndex )
 col 單元格列號
 row 單元格行號
 tileIndex 圖塊索引號

  爲指定舉行區域中多個單元格設定靜態圖塊
  public void fillCells(  int col, int row , int numCols, int numRows ,int tileIndex  )
  numCols   指定區域單元格每行個數
  numRows  指定區域單元格每列個數

㈢動態場景處理

  創建動態索引
   public int createAnimatedTile ( int staticTileIndex )
  staticTileIndex   靜態圖塊索引號
   可以看出動態索引需要指定靜態圖塊作爲初始圖塊,爲了實現動畫效果,在變換畫面時調用setAnimatedTile( )方法

  動態圖塊索引號與靜態圖塊索引號建立關聯
   public void setAnimatedTile( int animatedTileIndex , int staticTileIndex  )
  animatedTileIndex    動態圖塊索引號
  staticTileIndex       靜態圖塊索引號staticTileIndex  可以是數組

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章