<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倉庫 |  文件格式轉換 
    主站蜘蛛池模板: 亚洲综合久久夜AV | 噜噜噜亚洲色成人网站∨| 亚洲AV之男人的天堂| 亚洲va无码va在线va天堂| 国产AV旡码专区亚洲AV苍井空| 无人视频在线观看免费播放影院| 无码人妻精品中文字幕免费| 免费夜色污私人影院在线观看| 亚洲成年人电影网站| 两性色午夜视频免费网| 国产一区二区三区免费视频| 亚洲国产成人91精品| 国产一级一毛免费黄片| 亚洲一区二区三区在线观看精品中文| 亚洲乱码在线观看| 免费av欧美国产在钱| 亚洲影视一区二区| 毛片A级毛片免费播放| 亚洲系列中文字幕| 午夜精品一区二区三区免费视频| 亚洲欧洲国产精品你懂的| a毛片免费在线观看| 国产成人亚洲精品91专区手机| 好吊色永久免费视频大全| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 人禽伦免费交视频播放| 男男AV纯肉无码免费播放无码 | 免费国产黄网站在线观看视频| 亚洲AV中文无码乱人伦| 免费网站看av片| 久久亚洲精品无码| 最新国产乱人伦偷精品免费网站 | 很黄很色很刺激的视频免费| 亚洲高清美女一区二区三区| 日本特黄特黄刺激大片免费| 亚洲国产一区二区三区在线观看 | 四虎国产精品免费永久在线| 亚洲黄色网址大全| 免费真实播放国产乱子伦| 国内精品免费在线观看| 亚洲成a人片在线不卡一二三区 |