亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bmpi_rle8_decoder.c

?? bmp圖像文件解碼器的arm版本的源代碼
?? C
字號:
/*

*******************************************************************************
*
* FILE NAME:            
*   bmp_rle8_decoder.c
*
* DESCRIPTION:
*   source code for BMP decoder with 8-bit and RLE compression (RLE8)
*
* MODULE: 
*   BMP (BitMaP) decoder.
* 

*  
*******************************************************************************
*/

/*
*******************************************************************************
* Include files
*******************************************************************************
*/

/* -- Include for BMP ressources -- */
#include "bmp_decoder_api.h"
#include "bmpi_decoder.h"



/*
*******************************************************************************
* 
* FUNCTION NAME:
*   BMPI_DecodeRLE8()
*
* FUNCTION DESCRIPTION:
*   This function decodes a BMP image with 8-bit color and RLE compression.
*
* INPUTS:
*   pu8Bitmap  : pointer to bitmap data 
*   psPalette  : pointer to palette (structure)
*   sImageInfo : image information structure 
*   func       : pointer to callback function
*
* OUTPUTS:
*   psOutputBuffer  : pointer to output buffer (structure)
*   
* RETURN:
*   '0' if successful or '1' if failed.
*
* GLOBALS ACCESSED/MODIFIED:
*   < List all global variables this function accesses and/or modifies >
*
* SPECIAL NOTES:
*
*******************************************************************************
*/
OP_UINT8 BMPI_DecodeRLE8
(
    OP_UINT8                    *pu8Bitmap,
    PALETTE_TYPE                *psPalette,
    BMP_IMAGE_INFO              sImageInfo,
    OP_BOOLEAN                  func(OP_UINT16 x, OP_UINT16 y),
    IMAGE_DECODER_OUTPUT_TYPE   *psOutputBuffer
)
{


    /*-----------------------------------------------------------------------*/
    /* DECLARE LOCAL VARIABLES                                                 */
    /*-----------------------------------------------------------------------*/

    OP_UINT8    u8Xdelta;               /* delta for a jump on X-axis in output buffer */
    OP_UINT8    u8Ydelta;               /* delta for a jump on Y-axis in output buffer */
    OP_UINT8    u8PaletteIndex;         /* palette index to retrieve RGB color */
    OP_UINT8    u8FirstByte;            /* 1st byte for encoded and absolute modes */             
    OP_UINT8    u8SecondByte;           /* 2nd byte for encoded and absolute modes */
    OP_UINT32   u32Xindex;              /* index for X-axis of decoded image */        
    OP_UINT32   u32Yindex;              /* index for Y-axis of decoded image */
    OP_UINT32   u32CurrentPixelIndex;   /* current index for output buffer */
    OP_UINT32   u32NumberOfPixels;      /* number of pixels in image */
    OP_UINT32   u32Counter;             /* loop counter */

    IMAGE_DECODER_OUTPUT_TYPE *psOutputTemp;         /* temporary pointer on output buffer */


    /*-----------------------------------------------------------------------*/
    /* INITIALIZE LOCAL VARIABLES                                             */
    /*-----------------------------------------------------------------------*/

    u32Xindex = 0;                      
    u32Yindex = 0;                      
    u32CurrentPixelIndex = 0;                    
    u32NumberOfPixels = sImageInfo.u32ImageHeight*sImageInfo.u32ImageWidth;


    /*-----------------------------------------------------------------------*/
    /* DECODE 8-BIT COLORS & RLE COMPRESSION                                 */
    /*-----------------------------------------------------------------------*/

    while(u32CurrentPixelIndex < u32NumberOfPixels)
    {

        u8FirstByte  = *pu8Bitmap++;
        u8SecondByte = *pu8Bitmap++;

        if(u8FirstByte == 0)
        {
            /* -- Absolute mode -- */
            if(u8SecondByte > 2)
            {
                if((u32CurrentPixelIndex+u8SecondByte) >= u32NumberOfPixels)
                {
                    u8SecondByte = 
                        (OP_UINT8)(u32NumberOfPixels-u32CurrentPixelIndex);
                }
                u32Counter = (OP_UINT8)u8SecondByte;
                while(u32Counter--)
                {
                    u8PaletteIndex = *pu8Bitmap++;
                    psOutputTemp = psOutputBuffer+u32CurrentPixelIndex;
                    psOutputTemp->u8Blue 
                        = (psPalette+u8PaletteIndex)->u8Blue;
                    psOutputTemp->u8Green 
                        = (psPalette+u8PaletteIndex)->u8Green;
                    psOutputTemp->u8Red 
                        = (psPalette+u8PaletteIndex)->u8Red;
                    psOutputTemp->u8Alpha = 0xff;/* set to opaque as default */
                    u32Xindex++;
                    u32CurrentPixelIndex++;
                }
                u8SecondByte = u8SecondByte & 0x01;
                /* 16-bit boundary in absolute mode */
                if(u8SecondByte != 0)
                {
                    pu8Bitmap++;
                }
            }
            /* -- 'Escape mode' -- */
            else
            {
                /* end of line */
                switch (u8SecondByte) 
                {
                    case 0:
                        u32Xindex = 0;
                        u32Yindex++;
                        u32CurrentPixelIndex = 
                            u32Yindex*sImageInfo.u32ImageWidth+u32Xindex;
                        break;
                    /* end of bitmap */
                    case 1:
                        u32CurrentPixelIndex = u32NumberOfPixels;
                        break;
                    /* delta : jump in output buffer */
                    case 2:
                        u8Xdelta = *pu8Bitmap++;
                        u8Ydelta = *pu8Bitmap++;
                        u32Xindex += u8Xdelta;
                        u32Yindex += u8Ydelta;
                        u32CurrentPixelIndex = 
                            u32Yindex*sImageInfo.u32ImageWidth+u32Xindex;
                        break;
                    default:
                        return(1);
                }
            }
        }
        /* -- Encoded mode -- */
        else
        {
            if((u32CurrentPixelIndex+u8FirstByte) >= u32NumberOfPixels)
            {
                u32Counter = u32NumberOfPixels-u32CurrentPixelIndex;
            }
            else
            {
                u32Counter = (OP_UINT32)u8FirstByte;
            }
            while(u32Counter--)
            {
                psOutputTemp = psOutputBuffer+u32CurrentPixelIndex;
                psOutputTemp->u8Blue  = (psPalette+u8SecondByte)->u8Blue;
                psOutputTemp->u8Green = (psPalette+u8SecondByte)->u8Green;
                psOutputTemp->u8Red   = (psPalette+u8SecondByte)->u8Red;
                psOutputTemp->u8Alpha = 0xff;    /* set to opaque as default */
                u32Xindex++;
                u32CurrentPixelIndex++;
            }
        }

    }


    /*-----------------------------------------------------------------------*/
    /* DECODED SUCCESSFULLY                                                  */
    /*-----------------------------------------------------------------------*/

    return(0);

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产综合色视频| 欧美美女一区二区三区| 欧美午夜免费电影| 久久久影视传媒| 首页综合国产亚洲丝袜| 91丨九色porny丨蝌蚪| 精品国产sm最大网站免费看| 亚洲欧美日本在线| 国产一区在线观看麻豆| 欧美剧情片在线观看| 亚洲美女视频在线| 成人h动漫精品一区二| 精品理论电影在线| 美女视频黄频大全不卡视频在线播放| 成人永久看片免费视频天堂| 精品久久久久久最新网址| 午夜精品国产更新| 欧美性猛交一区二区三区精品| 中文字幕乱码日本亚洲一区二区| 久久精品国产秦先生| 7777精品伊人久久久大香线蕉完整版 | 午夜久久久久久久久| 99久久夜色精品国产网站| 久久久精品2019中文字幕之3| 日韩av电影免费观看高清完整版在线观看| 色视频成人在线观看免| ...av二区三区久久精品| 高清在线不卡av| 国产精品视频九色porn| 成人蜜臀av电影| 国产精品色眯眯| 本田岬高潮一区二区三区| 亚洲国产精品成人久久综合一区 | 亚洲国产日韩a在线播放性色| 91网站最新地址| 亚洲精品免费在线| 欧美性感一类影片在线播放| 亚洲一区二区三区视频在线播放| 91成人在线免费观看| 一区二区三区.www| 欧美日韩精品免费观看视频| 石原莉奈一区二区三区在线观看| 在线不卡免费欧美| 人人超碰91尤物精品国产| 91精品午夜视频| 经典一区二区三区| 中文子幕无线码一区tr| 91亚洲国产成人精品一区二三| 国产精品久久久久久久久久久免费看| 成人av在线资源网| 亚洲欧美日韩久久精品| 日本伦理一区二区| 免费在线观看日韩欧美| 国产亚洲综合av| 99久久99久久综合| 亚洲一区av在线| 欧美v日韩v国产v| eeuss鲁片一区二区三区| 亚洲综合自拍偷拍| 日韩欧美一区二区久久婷婷| 成人免费视频一区| 亚洲在线视频网站| 精品第一国产综合精品aⅴ| 成人黄色a**站在线观看| 亚洲电影视频在线| 国产午夜精品在线观看| 欧美视频一区在线观看| 国产美女精品人人做人人爽| 亚洲女同ⅹxx女同tv| 欧美变态凌虐bdsm| 色香蕉久久蜜桃| 国产自产v一区二区三区c| 亚洲精品中文在线观看| 日韩精品一区二区三区老鸭窝 | 欧美日韩国产首页| 丰满亚洲少妇av| 秋霞电影网一区二区| 国产精品美女视频| 精品国产亚洲一区二区三区在线观看 | 在线欧美日韩国产| 韩国av一区二区| 亚洲国产精品久久一线不卡| 欧美激情一区二区三区全黄| 欧美一区二区三区免费视频| 9久草视频在线视频精品| 久久99久国产精品黄毛片色诱| 亚洲黄色性网站| 欧美极品少妇xxxxⅹ高跟鞋| 91精品国产麻豆| 日本韩国一区二区三区视频| 国产精品77777竹菊影视小说| 亚洲第一精品在线| 亚洲人成网站影音先锋播放| 久久久亚洲精品石原莉奈| 在线播放91灌醉迷j高跟美女| av在线不卡电影| 国产999精品久久久久久绿帽| 老司机午夜精品| 三级欧美韩日大片在线看| 亚洲欧美日韩国产另类专区| 国产精品麻豆视频| 国产欧美一区二区精品性色超碰| 欧美一区二区三区免费大片 | 欧美亚洲高清一区| 91一区二区在线| 成人激情开心网| 成人的网站免费观看| 大白屁股一区二区视频| 国产精品原创巨作av| 国产一区二区主播在线| 精品一区精品二区高清| 精品一区二区三区免费毛片爱 | 亚洲精品一区二区三区影院| 欧美电影在哪看比较好| 欧美久久婷婷综合色| 欧美乱熟臀69xxxxxx| 欧美日韩国产一级| 91精品国产入口在线| 制服丝袜亚洲网站| 欧美一区二区三区日韩视频| 91精品国产91久久久久久最新毛片 | 国产精品久久二区二区| 国产精品久久久久久久裸模| 国产精品久久三| 亚洲三级在线观看| 亚洲免费观看高清完整版在线观看熊| 亚洲天堂免费看| 亚洲精品中文字幕在线观看| 一区二区三区在线播放| 亚洲在线免费播放| 日本午夜精品一区二区三区电影 | 北条麻妃一区二区三区| 日本韩国一区二区三区视频| 欧美日韩一区二区在线观看| 欧美一区二区三区喷汁尤物| 久久久亚洲午夜电影| 亚洲青青青在线视频| 亚洲国产日韩在线一区模特| 蜜臀av一区二区在线观看| 国产米奇在线777精品观看| 成人在线视频首页| 欧美视频一区二区在线观看| 日韩一区二区三区av| 国产日韩欧美精品一区| 亚洲一区影音先锋| 黑人精品欧美一区二区蜜桃| 成人av网站在线观看| 欧美日韩一区在线观看| 久久久国产精品不卡| 亚洲精品乱码久久久久久久久 | 国产精品午夜在线| 亚洲自拍偷拍九九九| 国产在线精品一区二区三区不卡 | 国产高清无密码一区二区三区| 成人aaaa免费全部观看| 6080亚洲精品一区二区| 国产女人18水真多18精品一级做| 亚洲激情图片小说视频| 国模娜娜一区二区三区| 在线一区二区三区做爰视频网站| 日韩小视频在线观看专区| 国产精品久久看| 久久99热狠狠色一区二区| 日本韩国欧美在线| 国产午夜精品在线观看| 婷婷六月综合网| 91浏览器入口在线观看| 久久久蜜桃精品| 蜜臀久久99精品久久久久宅男| 91丨porny丨最新| 久久综合色婷婷| 日本va欧美va精品| 欧美一a一片一级一片| 国产精品三级av| 激情六月婷婷综合| 欧美一级生活片| 亚洲第一福利一区| 91福利小视频| 亚洲欧美日韩在线播放| 不卡一区二区中文字幕| 久久久久久久久久电影| 久久精品国产亚洲a| 3d动漫精品啪啪1区2区免费 | 亚洲欧美二区三区| 成人在线综合网| 国产日本欧美一区二区| 韩国精品一区二区| 精品理论电影在线| 韩国精品久久久| 久久综合色8888| 国产一区二区三区四区在线观看 | 日韩欧美在线影院| 三级亚洲高清视频| 欧美一区二区三区免费大片| 日韩高清不卡在线| 日韩午夜小视频| 美日韩一级片在线观看| 日韩精品一区二区三区视频播放| 男人的天堂久久精品| 日韩精品专区在线影院重磅|