<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人在线观看| 亚洲AV性色在线观看| 永久免费看bbb| 日日摸日日碰夜夜爽亚洲| 日本免费一区尤物| 在线观看亚洲免费| 亚洲精品成人久久久| 亚洲国产免费综合| 亚洲av综合色区| 7m凹凸精品分类大全免费| 亚洲成年人免费网站| 精品久久久久国产免费| 亚洲精品欧美综合四区 | 青娱乐免费在线视频| 亚洲AV无码久久久久网站蜜桃| 无码人妻一区二区三区免费| 亚洲国产成人久久精品软件| 亚洲国产成人久久一区WWW| 中文字幕视频在线免费观看| 婷婷久久久亚洲欧洲日产国码AV| 99在线热视频只有精品免费| 亚洲av无码专区在线| 亚洲AV无码乱码在线观看性色扶| 国产精品永久免费视频| 久久精品国产亚洲av麻豆小说| 国产精品视频永久免费播放| 无套内射无矿码免费看黄| 亚洲AV日韩AV鸥美在线观看| 无码专区永久免费AV网站| 猫咪免费人成网站在线观看入口| 亚洲精品夜夜夜妓女网| 永久免费AV无码国产网站| 污污免费在线观看| 亚洲嫩草影院久久精品| 国产精品无码一二区免费| 99久久99这里只有免费的精品| 亚洲a视频在线观看| 国产亚洲精品不卡在线| 国产无人区码卡二卡三卡免费 |