青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::
用 Targa(TGA) 圖像文件,因為它簡單并且支持 alpha 通道,它可以使你更容易的創(chuàng)建酷的效果。
TGA 文件與 BMP 文件一樣,圖像數(shù)據(jù)都是按 BGR 存儲,而 OpenGL 的圖像是按 RGB 來使用的。
這里用了一個很好的方法,一次性讀入所有的圖像數(shù)據(jù),然后再進行轉(zhuǎn)換 R 與 B,而不是每次讀一個 R,G,B,A,這種讀法很省時間。fread(buffer, size, number, file);按塊讀取文件內(nèi)容
size 為每次讀取幾個 byte,如按字節(jié)讀取,這里使用的一樣,size == 1;
number 為一共讀取多少個 size 的內(nèi)容,number = width * height * bytesPerPixel;(整個圖像的數(shù)據(jù)內(nèi)容)
這個方法只能讀取無壓縮的 TGA 文件
TGA 開始為 12 字節(jié)的內(nèi)容為描述文件的一般信息,接下來的 6 字節(jié)為最重要的信息,文件寬,高,每個像素的位數(shù), 從第 18 個字節(jié)開始,就是圖像的數(shù)據(jù)內(nèi)容。
更重要的一點,這個程序進行了各種出錯處理。
 
#ifndef _TGALOAD_H_
#define _TGALOAD_H_
#include <stdio.h>
 
typedef struct {
       GLubyte* data;
        GLuint width;
        GLuint height;
        GLuint rgbType;
} TextureImage;
 
GLboolean loadTGA(char* fileName, TextureImage* textureImage) {
        GLubyte TGAheader[12]= { 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // 無壓縮的TGA文件頭
        GLubyte TGAcompare[12]; // 保存讀入的文件頭信息
        GLubyte header[6]; // 保存最有用的圖像信息,寬,高,位深
        GLuint bytesPerPixel; // 記錄每個顏色所占用的字節(jié)數(shù)
        GLuint imageSize; // 記錄文件大小
        GLuint temp; 
// 臨時變量
 
        FILE *file = fopen(fileName, "rb"); // 打開一個TGA文件
        if (file==NULL || // 文件存在么?
                      fread(TGAcompare, 1, sizeof(TGAcompare), file)!= sizeof(TGAcompare) ||
                      // 是否包含12個字節(jié)的文件頭?
                      memcmp(TGAheader, TGAcompare, sizeof(TGAheader))!= 0 ||
                      // 是否是我們需要的格式?
                      fread(header, 1, sizeof(header), file)!= sizeof(header)) {
                      // 如果是讀取下面六個圖像信息
                if (file == NULL) // 文件不存在返回錯誤
                        return false;
                else {
                        fclose(file); // 關(guān)閉文件返回錯誤
                        return false;
                }
        }
 
        textureImage->width = header[1] * 256 + header[0]; // 記錄文件寬度
        textureImage->height = header[3] * 256 + header[2]; 
// 記錄文件高度
        if (textureImage->width <= 0 || // 寬度是否小于0
                      textureImage->height <= 0 || // 高度是否小于0
                      (header[4] != 24 && header[4] != 32)) { // TGA文件是24/32位?
                fclose(file); // 如果失敗關(guān)閉文件,返回錯誤
                return false;
        }
        bytesPerPixel = header[4] >> 3; // 記錄每個象素所占的字節(jié)數(shù)
        textureImage->rgbType = bytesPerPixel; // 記錄每個象素所占的字節(jié)數(shù)
 
        imageSize = textureImage->width *textureImage->height * bytesPerPixel;
        // 計算TGA文件加載所需要的內(nèi)存大小
        textureImage->data = (GLubyte*)malloc(imageSize); // 分配內(nèi)存去保存TGA數(shù)據(jù)
        if (textureImage->data == NULL || // 系統(tǒng)是否分配了足夠的內(nèi)存?
                      fread(textureImage->data, 1, imageSize, file)!= imageSize) {
                      // 是否成功讀入內(nèi)存?
                if (textureImage->data != NULL) { // 是否有數(shù)據(jù)被加載
                        free(textureImage->data); // 如果是,則釋放載入的數(shù)據(jù)
                }
                fclose(file); // 關(guān)閉文件
                return false; // 返回錯誤
        }
 
        for (GLuint i=0; i<GLuint(imageSize); i+=bytesPerPixel) {
                // 循環(huán)所有的像素
                // 交換R和B的值
                temp = textureImage->data[i];
                textureImage->data[i] = textureImage->data[i + 2];
                textureImage->data[i + 2] = temp;
        }
 
        fclose(file); // 關(guān)閉文件
        
return true;
}
 
#endif
 
posted on 2010-12-17 17:32 逛奔的蝸牛 閱讀(622) 評論(0)  編輯 收藏 引用 所屬分類: OpenGL
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久亚洲一区二区三区四区| 国产欧美日本一区二区三区| 亚洲精品日韩激情在线电影| 欧美国产视频一区二区| 久久精品国产一区二区电影 | 欧美日韩在线播| 欧美激情久久久久| 欧美日韩免费网站| 国产免费亚洲高清| 黄色日韩在线| 日韩亚洲国产精品| 在线视频日本亚洲性| 先锋a资源在线看亚洲| 久久综合狠狠综合久久综合88| 欧美成年人网| 一区二区三区免费网站| 久久久综合激的五月天| 欧美日韩黄色一区二区| 国内精品国产成人| 最新高清无码专区| 亚洲一区二区三区四区在线观看| 久久亚洲私人国产精品va媚药| 亚洲丰满在线| 亚洲尤物在线视频观看| 久久人体大胆视频| 欧美午夜精品一区二区三区| 国模一区二区三区| 在线中文字幕不卡| 一区二区三区在线视频播放| 欧美大片第1页| 久久久精品国产99久久精品芒果| 欧美三级电影一区| 国产午夜久久久久| 一本久久综合亚洲鲁鲁| 欧美在线免费观看亚洲| 亚洲国产高清一区二区三区| 亚洲在线一区二区三区| 美女黄网久久| 国产日韩在线看片| 一区二区三区av| 欧美va亚洲va香蕉在线| 午夜在线成人av| 欧美日韩高清在线播放| 一区二区三区无毛| 欧美一级成年大片在线观看| 亚洲精品123区| 久久成人免费电影| 国产农村妇女精品一二区| 一区二区三区欧美| 亚洲欧洲精品成人久久奇米网| 欧美中文字幕在线播放| 欧美性jizz18性欧美| 99精品视频免费在线观看| 免费久久99精品国产自在现线| 亚洲一区二区三区免费视频| 欧美精品v日韩精品v韩国精品v | 一区二区三区四区五区精品视频 | 久久aⅴ国产欧美74aaa| 一二三四社区欧美黄| 欧美激情视频在线播放| 亚洲精品一区二区三区樱花| 欧美大成色www永久网站婷| 欧美一站二站| 国产一区二区久久| 久久精品最新地址| 久久免费视频在线| 亚洲激情一区| 亚洲精品国偷自产在线99热| 欧美激情五月| 一本色道久久综合一区| 亚洲国产综合在线| 欧美精品日韩一区| 一个色综合导航| 中文国产成人精品久久一| 欧美视频在线一区二区三区| 亚洲一级免费视频| 亚洲网友自拍| 黄色亚洲在线| 免费永久网站黄欧美| 欧美成人免费网站| 亚洲一级二级| 性感少妇一区| 久久亚洲高清| 亚洲国产精品成人精品| 亚洲二区精品| 欧美日韩色一区| 欧美伊人久久| 久久亚洲国产成人| 一区二区三区精品| 欧美一区二区三区的| 亚洲欧洲精品一区| 亚洲免费高清视频| 国产精品午夜久久| 亚洲成人在线视频播放| 麻豆精品精华液| 亚洲香蕉网站| 久久久国产亚洲精品| 日韩图片一区| 欧美一区二区日韩| 在线一区二区三区四区| 性欧美暴力猛交另类hd| aa级大片欧美| 久久久97精品| 亚洲午夜电影| 久久最新视频| 久久精品国产77777蜜臀| 蜜桃精品久久久久久久免费影院| 亚洲影音一区| 欧美精品一级| 男男成人高潮片免费网站| 国产精品视频大全| 亚洲区中文字幕| 亚洲国产精品成人综合| 亚洲免费一在线| 一区二区日韩伦理片| 久久久国产亚洲精品| 亚洲主播在线播放| 久久综合狠狠综合久久激情| 性欧美videos另类喷潮| 欧美www在线| 欧美1区视频| 狠狠色噜噜狠狠色综合久| 亚洲愉拍自拍另类高清精品| 9色porny自拍视频一区二区| 免费观看30秒视频久久| 美女网站久久| 激情小说亚洲一区| 久久se精品一区二区| 久久国产精品99国产| 国产精品综合不卡av| 亚洲伊人一本大道中文字幕| 亚洲专区在线| 国产精品久久久久久av福利软件| 亚洲精品视频免费| 日韩视频一区二区三区在线播放免费观看| 久久精品国产2020观看福利| 久久国内精品视频| 国产婷婷色一区二区三区四区| 午夜精品一区二区三区在线| 亚洲男人影院| 国产精品欧美日韩一区| 亚洲永久视频| 久久av一区二区三区亚洲| 国产日韩欧美视频| 欧美一区二区三区在线看| 久久国产黑丝| 在线播放日韩| 欧美国产第二页| 日韩午夜剧场| 国产精品久久二区二区| 99热精品在线| 午夜日韩激情| 国内精品久久久久久影视8 | 国产精品盗摄久久久| 一区二区电影免费观看| 午夜伦理片一区| 国产综合亚洲精品一区二| 久久九九精品99国产精品| 亚洲高清不卡在线观看| 一本色道久久加勒比精品| 欧美午夜视频| 久久久夜精品| 夜夜嗨网站十八久久| 欧美在线观看www| 一区二区三区在线看| 欧美日韩高清在线一区| 欧美诱惑福利视频| 亚洲高清久久网| 亚洲视频网在线直播| 国产在线精品一区二区中文| 欧美高清免费| 欧美一区二区三区免费观看| 免费视频亚洲| 午夜一区不卡| 91久久线看在观草草青青| 国产精品ⅴa在线观看h| 久久青青草综合| 一本色道久久综合亚洲精品高清| 久久精品国产亚洲5555| 99国产精品99久久久久久粉嫩 | 最近中文字幕mv在线一区二区三区四区| 欧美精品在线一区二区| 亚洲欧美在线免费观看| 亚洲国产福利在线| 久久精品首页| 亚洲午夜激情免费视频| 亚洲电影第三页| 国产欧美欧美| 国产精品成人在线观看| 毛片精品免费在线观看| 销魂美女一区二区三区视频在线| 亚洲区第一页| 欧美国产日韩在线观看| 欧美在线黄色| 亚洲综合第一| 亚洲视频日本| 亚洲美女av网站| 亚洲三级网站| 亚洲韩国精品一区| 一区二区视频免费完整版观看|