91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-16
  • 語言: 其他
  • 標(biāo)簽: freeimage??opengl??

資源簡介

opengl 使用 freeimage 讀取 圖像到 紋理 和 存儲圖像到 文件的一個類的小例子

資源截圖

代碼片段和文件信息


#include?“image.h“
#include?

using?namespace?std;
#pragma?comment(lib?“FreeImage.lib“)

Image::Image(void)
{
bitmap=NULL;
textureName=0;
}

Image::~Image(void)
{
if?(bitmap!=NULL)?FreeImage_Unload(bitmap);

}
bool?Image::allocate(int?w?int?h)
{
if?(bitmap!=NULL)?FreeImage_Unload(bitmap);
bitmap=NULL;
bitmap=?FreeImage_Allocate(w?h?32);
width=w;
height=h;
if?(!bitmap)?return?true;?else?return?false;
}
bool?Image::save_to_file(char?*filename)
{
if?(FreeImage_Save(FIF_BMPbitmapfilename0)?)?return?true;?else?return?false;
}
bool?Image::load_from_file(char?*?filename)
{
this->filename?=?string(filename);
FREE_IMAGE_FORMAT?fif?=?FIF_UNKNOWN;
FIBITMAP?*dib(0);
BYTE*?bits(0);
fif?=?FreeImage_GetFileType(filename?0);

fif?=?FreeImage_GetFileType(filename?0);
if(fif?==?FIF_UNKNOWN)?
fif?=?FreeImage_GetFIFFromFilename(filename);
if(fif?==?FIF_UNKNOWN)
return?false;

if(FreeImage_FIFSupportsReading(fif))
dib?=?FreeImage_Load(fif?filename);
if(!dib)
return?false;

bits?=?FreeImage_GetBits(dib);
width?=?FreeImage_GetWidth(dib);
height?=?FreeImage_GetHeight(dib);

if((bits?==?0)?||?(width?==?0)?||?(height?==?0))
{
FreeImage_Unload(dib);
return?false;
}

FREE_IMAGE_TYPE?type;
type=FreeImage_GetImageType(dib);

RGBQUAD?*?pal?=?FreeImage_GetPalette(dib)?;

unsigned?int?bpp;
bpp=?FreeImage_GetBPP(?dib?)?;


unsigned?red_mask??green_mask??blue_mask?;

red_mask?=?FreeImage_GetRedMask?(?dib?)?;
green_mask?=?FreeImage_GetGreenMask?(?dib?)?;
blue_mask?=?FreeImage_GetBlueMask?(?dib?)?;
cout<

bitmap=?FreeImage_ConvertTo32Bits(dib);
//FreeImage_Invert(bitmap);
cout<<“l(fā)oad?successful?“<

red_mask?=?FreeImage_GetRedMask?(?bitmap?)?;
green_mask?=?FreeImage_GetGreenMask?(?bitmap?)?;
blue_mask?=?FreeImage_GetBlueMask?(?bitmap?)?;
cout< //for?(int?i=0;?i<100;?i++)
//{
// cout< //}

return?true;


}
bool?Image::initTexture()
{
textureName=0;
glGenTextures(1?&textureName);
if?(textureName==0)?
{
cout< return?false;
}
glBindTexture(GL_TEXTURE_2D?textureName);

glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_WRAP_S?GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_WRAP_T?GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_MAG_FILTER?GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D?GL_TEXTURE_MIN_FILTER?GL_LINEAR);


BYTE*?bits(0);
bits=?FreeImage_GetBits(bitmap);
width=?FreeImage_GetWidth(bitmap);
height=?FreeImage_GetHeight(bitmap);
glTexImage2D(GL_TEXTURE_2D?0?GL_RGBA?width?height?
0?GL_RGBA?GL_UNSIGNED_BYTE?bits);

cout< return?true;

}

void?Image::draw(float?left?float?right?float?bottom?float?top)
{


?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????3294??2009-11-26?12:31??image.cpp

?????文件???????1519??2009-11-26?12:30??image.h

-----------?---------??----------?-----??----

?????????????????4813????????????????????2


評論

共有 條評論