<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Feeling

        三人行,必有我師焉

       ::  :: 新隨筆 :: 聯系 ::  :: 管理 ::
      185 隨筆 :: 0 文章 :: 392 評論 :: 0 Trackbacks
    關于PaletteData的生成:
    case Gdip.PixelFormat16bppARGB1555:                                        
    case Gdip.PixelFormat16bppRGB555: 
        paletteData = new PaletteData(0x7C00, 0x3E0, 0x1F); 
    break;
    case Gdip.PixelFormat16bppRGB565: 
        paletteData = new PaletteData(0xF800, 0x7E0, 0x1F); 
    break;
    case Gdip.PixelFormat24bppRGB: 
        paletteData = new PaletteData(0xFF, 0xFF00, 0xFF0000); 
    break;
    case Gdip.PixelFormat32bppRGB:
    case Gdip.PixelFormat32bppARGB: 
        paletteData = new PaletteData(0xFF00, 0xFF0000, 0xFF000000); 
    break;

    32位ImageData中的data是以RGBA的順序存儲的。data[0]:red,data[1]:green,data[2]:blue,data[3]:alpha

    從byte[]中讀取RGB pixel:
    public static int getPixelFromRGBA( int depth, byte[] data )
    {
            switch ( depth )
            {
                case 32 :
                    return ( ( data[0] & 0xFF ) << 24 )
                            + ( ( data[1] & 0xFF ) << 16 )
                            + ( ( data[2] & 0xFF ) << 8 )
                            + ( data[3] & 0xFF );
                case 24 :
                    return ( ( data[0] & 0xFF ) << 16 )
                            + ( ( data[1] & 0xFF ) << 8 )
                            + ( data[2] & 0xFF );
                case 16 :
                    return ( ( data[1] & 0xFF ) << 8 ) + ( data[0] & 0xFF );
                case 8 :
                    return data[0] & 0xFF;
            }
            SWT.error( SWT.ERROR_UNSUPPORTED_DEPTH );
            return 0;
    }

    從pixel中取出RGB值:
    RGB rgb = imagedata.palette.getRGB( pixel );

    生成一個空的32位圖片:
    ImageData dest = new ImageData( width,
                    height,
                    32,
                    new PaletteData( 0xFF00, 0xFF0000, 0xFF000000 ) );

    24位透明圖片轉成32位透明圖片:
        public static ImageData convertToRGBA( ImageData src )
        {
            ImageData dest = new ImageData( src.width,
                    src.height,
                    32,
                    new PaletteData( 0xFF00, 0xFF0000, 0xFF000000 ) );

            for ( int x = 0; x < src.width; x++ )
            {
                for ( int y = 0; y < src.height; y++ )
                {
                    int pixel = src.getPixel( x, y );
                    RGB rgb = src.palette.getRGB( pixel );

                    byte[] rgba = new byte[4];

                    rgba[0] = (byte) rgb.red;
                    rgba[1] = (byte) rgb.green;
                    rgba[2] = (byte) rgb.blue;

                    if ( pixel == src.transparentPixel )
                    {
                        rgba[3] = (byte) ( 0 );
                    }
                    else
                    {
                        rgba[3] = (byte) ( 255 );
                    }
                    dest.setPixel( x, y, getPixelFromRGBA( 32, rgba ) );
                }
            }
            return dest;
        }

    posted on 2012-01-15 13:49 三人行,必有我師焉 閱讀(3567) 評論(1)  編輯  收藏

    評論

    # re: SWT ImageData的一些小結[未登錄] 2013-03-16 20:51
    用 SWT 怎么創建一個 空的 透明的圖片?  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    GitHub |  開源中國社區 |  maven倉庫 |  文件格式轉換 
    主站蜘蛛池模板: 国产成人综合亚洲一区| 日日操夜夜操免费视频| 亚洲A∨无码一区二区三区| 免费人成网站永久| 免费黄色网址入口| 国产成人精品日本亚洲直接| 一级毛片在线免费看| 亚洲精品无码mv在线观看网站 | 国产精品亚洲片在线花蝴蝶 | 国产成人亚洲综合无码| 精品久久亚洲一级α| 成人毛片18女人毛片免费视频未| 亚洲日韩在线视频| 最近免费中文字幕高清大全 | 亚洲成人免费网址| 99久久亚洲综合精品成人网| 久久成人无码国产免费播放| 亚洲AV无码一区二区二三区软件| 最近中文字幕免费大全| 综合亚洲伊人午夜网 | 日韩亚洲国产高清免费视频| 亚洲精品在线网站| 猫咪免费人成网站在线观看| 中文字幕亚洲免费无线观看日本| 污污网站免费观看| 精品亚洲A∨无码一区二区三区| 亚洲精品免费在线观看| 久久亚洲精品人成综合网| 精品无码人妻一区二区免费蜜桃| 亚洲视频在线视频| 在线观看永久免费| 亚洲午夜一区二区三区| 免费人成在线视频| 亚洲国产精品无码第一区二区三区| 最近2019中文字幕免费看最新| 亚洲日韩中文字幕无码一区| 午夜精品在线免费观看| 久久久久亚洲精品无码网址色欲 | 亚洲日韩欧洲乱码AV夜夜摸| 国产偷伦视频免费观看| 亚洲另类激情综合偷自拍|