<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倉庫 |  文件格式轉換 
    主站蜘蛛池模板: 2020国产精品亚洲综合网 | 国产成人无码综合亚洲日韩 | 一个人看www免费高清字幕| 成人五级毛片免费播放| 亚洲熟妇无码一区二区三区| 黄+色+性+人免费| 亚洲一区在线视频| 久久天天躁狠狠躁夜夜免费观看| 亚洲图片激情小说| 全免费a级毛片免费看不卡 | 国产性生大片免费观看性| 黑人大战亚洲人精品一区| 一个人免费视频观看在线www| 婷婷久久久亚洲欧洲日产国码AV| 日本免费人成视频在线观看| 亚洲欧洲自拍拍偷综合| 免费毛片a在线观看67194 | 亚洲色偷偷色噜噜狠狠99| 国产成人免费a在线资源| 特级aa**毛片免费观看| 亚洲午夜久久久久久噜噜噜| 中文字幕久精品免费视频| 亚洲精品美女久久久久9999| 18禁成年无码免费网站无遮挡| 精品国产亚洲第一区二区三区| 亚洲毛片网址在线观看中文字幕| 丝袜足液精子免费视频| 91亚洲va在线天线va天堂va国产| 成年美女黄网站18禁免费| 一级毛片正片免费视频手机看| 亚洲AV永久无码区成人网站| 久草在视频免费福利| 日韩少妇内射免费播放| 亚洲精品国产成人专区| 精品少妇人妻AV免费久久洗澡| 久久久久国色AV免费观看| 亚洲久悠悠色悠在线播放| 久久精品国产精品亚洲人人| 99久久99这里只有免费费精品| 美女被吸屁股免费网站| 亚洲精品中文字幕麻豆|