锘??xml version="1.0" encoding="utf-8" standalone="yes"?> TXT X鏂囦歡 TIFF鏍煎紡 JPEG鏍煎紡 Amiga IFF鏍煎紡 PCX鏍煎紡 TGA鏍煎紡 Scitex CT鏍煎紡 PDF鏍煎紡 PICT鏍煎紡 BMP鏍煎紡 PNG鏍煎紡 GIF鏍煎紡 鍚庨潰鐨勬枃绔犲皢浼氬Gif鏍煎紡鍋氫竴涓疄鐜般傝鏈熷緟
Update: 2004-2-24
銆銆 鏃犱換浣曟牸寮忕殑ASCII鏂囨湰鏂囦歡銆?
Update: 2004-2-24
銆銆 澶嶆潅鐨勫嚑浣曟ā鍨嬮氬父鏄敱3D寤烘ā杞綋鍒涘緩騫朵繚瀛樺埌鏂囦歡涓紝Microsoft Direct3D浣跨敤鐨勭綉鏍兼ā鍨嬮兘鏄澆鍏ヨ繖浜涙枃浠朵腑鐨勫璞°?
Update: 2004-2-23
銆銆 TIFF錛圱ag Image File Format鏈夋爣絳劇殑鍥懼儚鏂囦歡鏍煎紡錛夋槸Aldus鍦∕ac鍒濇湡寮鍙戠殑錛岀洰鐨勬槸浣挎壂鎻忓浘鍍忔爣鍑嗗寲銆傚畠鏄法瓚奙ac涓嶱C騫沖彴鏈騫挎硾鐨勫浘鍍忔墦鍗版牸寮忋俆IFF浣跨敤LZW鏃犳崯鍘嬬緝錛屽ぇ澶у噺灝戜簡鍥懼儚浣撶Н銆傚彟澶栵紝TIFF鏍煎紡鏈浠や漢嬋鍔ㄧ殑鍔熻兘鏄彲浠ヤ繚瀛橀氶亾錛岃繖瀵逛簬浣犲鐞嗗浘鍍忔槸闈炲父鏈夊ソ澶勭殑銆?
Update: 2004-2-23
銆銆 JPEG錛堢敱Joint Photographic Experts Group“鑱斿悎鍥懼艦涓撳緇?#8221;鍛藉悕錛夋槸鎴戜滑騫蟲椂鏈甯哥敤鐨勫浘鍍忔牸寮忋傚畠鏄竴涓渶鏈夋晥銆佹渶鍩烘湰鐨勬湁鎹熷帇緙╂牸寮忥紝琚瀬澶у鏁扮殑鍥懼艦澶勭悊杞歡鎵鏀寔銆侸PEG鏍煎紡鐨勫浘鍍忚繕騫挎硾鐢ㄤ簬Web鐨勫埗浣溿傚鏋滃鍥懼儚璐ㄩ噺瑕佹眰涓嶉珮錛屼絾鍙堣姹傚瓨鍌ㄥぇ閲忓浘鐗囷紝浣跨敤JPEG鏃犵枒鏄竴涓ソ鍔炴硶銆?
Update: 2004-2-23
銆銆 Amiga鏄敱Commodore寮鍙戠殑錛岀敱浜庤鍏徃宸查鍑鴻綆楁満甯傚満錛屽洜姝わ紝Amiga IFF鏍煎紡涔熷皢娓愭笎鍦拌搴熷純銆?
Update: 2004-2-23
銆銆 PCX鏄疍OS涓嬬殑鍙よ佺▼搴廝C PaintBrush鍥烘湁鏍煎紡鐨勬墿灞曞悕錛屽洜姝よ繖涓牸寮忓凡涓嶅彈嬈㈣繋銆?
Update: 2004-2-23
銆銆 TrueVision鐨凾GA(Targa)鍜孨uVista瑙嗛鏉垮彲灝嗗浘鍍忓拰鍔ㄧ敾杞叆鐢佃涓紝PC鏈轟笂鐨勮棰戝簲鐢ㄨ蔣浠墮兘騫挎硾鏀寔TGA鏍煎紡銆?
Update: 2004-2-23
銆銆 Scitex CT鏍煎紡鏀寔鐏板害綰у浘鍍忋丷GB鍥懼儚銆丆MYK鍥懼儚銆侾hotoshop鍙互鎵撳紑璇稿Scitex鍥懼儚澶勭悊璁懼鐨勬暟瀛楀寲鍥懼儚銆?
Update: 2004-2-23
銆銆 PDF錛圥ortable Document Format錛夋槸鐢盇dobe Systems鍒涘緩鐨勪竴縐嶆枃浠舵牸寮忥紝鍏佽鍦ㄥ睆騫曚笂鏌ョ湅鐢靛瓙鏂囨。銆侾DF鏂囦歡榪樺彲琚祵鍏ュ埌Web鐨凥TML鏂囨。涓?
Update: 2004-2-23
銆銆 PICT鏄疢ac涓婂父瑙佺殑鏁版嵁鏂囦歡鏍煎紡涔嬩竴銆傚鏋滀綘瑕佸皢鍥懼儚淇濆瓨鎴愪竴縐嶈兘澶熷湪Mac涓婃墦寮鐨勬牸寮忥紝閫夋嫨PICT鏍煎紡瑕佹瘮JPEG瑕佸ソ錛屽洜涓哄畠鎵撳紑鐨勯熷害鐩稿綋蹇傚彟澶栵紝浣犲鏋滆鍦≒C鏈轟笂鐢≒hotoshop鎵撳紑涓騫匨ac涓婄殑PICT鏂囦歡錛屽緩璁綘鍦≒C鏈轟笂瀹夎QuickTime錛屽惁鍒欙紝灝嗕笉鑳芥墦寮PICT鍥懼儚銆?
Update: 2004-2-23
銆銆 BMP(Windows Bitmap)鏄井杞紑鍙戠殑Microsoft Pain鐨勫浐鏈夋牸寮忥紝榪欑鏍煎紡琚ぇ澶氭暟杞歡鎵鏀寔銆侭MP鏍煎紡閲囩敤浜嗕竴縐嶅彨RLE鐨勬棤鎹熷帇緙╂柟寮忥紝瀵瑰浘鍍忚川閲忎笉浼氫駭鐢熶粈涔堝獎鍝嶃?
Update: 2004-2-23
銆銆 PNG鏄笓闂ㄤ負Web鍒涢犵殑銆侾NG鏍煎紡鏄竴縐嶅皢鍥懼儚鍘嬬緝鍒癢eb涓婄殑鏂囦歡鏍煎紡錛屽拰GIF鏍煎紡涓嶅悓鐨勬槸錛孭NG鏍煎紡騫朵笉浠呴檺浜?56鑹層?
Update: 2004-2-23
銆銆 GIF鏄緭鍑哄浘鍍忓埌緗戦〉鏈甯擱噰鐢ㄧ殑鏍煎紡銆侴IF閲囩敤LZW鍘嬬緝錛岄檺瀹氬湪256鑹蹭互鍐呯殑鑹插僵銆侴IF鏍煎紡浠?7a鍜?9a涓ょ浠g爜琛ㄧず銆侴IF87a涓ユ牸鏀寔涓嶉忔槑鍍忕礌銆傝孏IF89a鍙互鎺у埗閭d簺鍖哄煙閫忔槑錛屽洜姝わ紝鏇村ぇ鍦扮緝灝忎簡GIF鐨勫昂瀵搞?
]]>
gif89a 浠g爜涓嬭澆
璇︾粏綰圭悊鐢熸垚浠g爜錛?br>

bool Cmenu::CreateTextureFromGif()

{
HRESULT hr;
CGif89a* pGif = new CGif89a();
BOOL bopen = pGif->open("110743081.gif",true);
int index = 0;
LPCFRAME pFrame = pGif->getFrame(index);
if (!pFrame)
return false;

BYTE* pColorTable = pGif->getColorTable(index);
if (!pColorTable)
return false;
//create empty Texture.
hr = D3DXCreateTexture(m_pDevice,pFrame->imageWidth,pFrame->imageHeight,0,0,D3DFMT_X8B8G8R8,D3DPOOL_MANAGED,&m_pTexture[0]);
if(FAILED(hr))
return false;
D3DSURFACE_DESC textureDesc;
m_pTexture[0]->GetLevelDesc(0,&textureDesc);
if(textureDesc.Format != D3DFMT_X8B8G8R8)
return false;
D3DLOCKED_RECT locketrect;
hr = m_pTexture[0]->LockRect( 0,&locketrect,0,0 );
if(FAILED(hr))
return false;
BYTE* pBytes = (BYTE*)locketrect.pBits;
DWORD lPitch = locketrect.Pitch;
int idx_trs = pFrame->ctrlExt.trsFlag ? pFrame->ctrlExt.trsColorIndex : -1;
int x=0,y=0;
int sx, sy;
if(x<0)
sx = -x;
else
sx = 0;
if(y<0)
sy = -y;
else
sy = 0;

DWORD width = pFrame->imageWidth;
pBytes += lPitch*sy;
for( DWORD h=sy; y+h<pFrame->imageHeight; h++ )
{
DWORD* pDstData32 = ((DWORD*)pBytes) + sx;
WORD* pDstData16 = ((WORD*)pBytes) + sx;
BYTE* pPixel;
BYTE* pIdx = pFrame->dataBuf + (pFrame->imageWidth*(((y>0)?y:0)+h) + ((x>0)?x:0));
for( DWORD w=sx; w<width; w++ )
{
pPixel = pColorTable + (*pIdx)*3;
if (*pIdx==idx_trs)
{
//if( 32 == ddsd.ddpfPixelFormat.dwRGBBitCount )
// pDstData32[w] = 0;
//else
// pDstData16[w] = 0;
}
else
{
DWORD m_nRShiftL = 0; DWORD m_nRShiftR = 0;
DWORD m_nGShiftL = 0; DWORD m_nGShiftR = 0;
DWORD m_nBShiftL = 0; DWORD m_nBShiftR = 0;
DWORD m_nAShiftL = 0; DWORD m_nAShiftR = 0;
DWORD dr = ((DWORD(pPixel[0])>>(m_nRShiftL))<<m_nRShiftR);
DWORD dg = ((DWORD(pPixel[1])>>(m_nGShiftL))<<8);
DWORD db = ((DWORD(pPixel[2])>>(m_nBShiftL))<<16);
DWORD da = ((0xff>>(m_nAShiftL))<<24);
pDstData32[w] = (DWORD)(dr+dg+db+da);
}
pIdx ++;
}
pBytes += lPitch;
}
m_pTexture[0]->UnlockRect(0);
return true;
}