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

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

?? imagif.cpp

?? 一套圖像處理程序,支持三種圖像文件格式,我調試過了,很好用
?? CPP
字號:
/*
 * File:	imagif.cc
 * Purpose:	Platform Independent GIF Image Class
 * Author:	Alejandro Aguilar Sierra
 * Created:	1995
 * Copyright: (c) 1995, Alejandro Aguilar Sierra <asierra@servidor.unam.mx>
 *
 */

// #include "stdafx.h"

#include "imagif.h"
#if CIMAGE_SUPPORT_GIF

#include "imaiter.h"
#include "gifdecod.h"
#include <stdio.h>

// Force byte alignment (Borland)
#if defined  __BORLANDC__
#pragma option -a1
#elif defined _MSV_VER
#pragma option /Zp1
#endif

//#include <fstream.h>
//static ofstream log("x.log");

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

////////////////////////// AD - for interlace ///////////////////////////////
int interlaced, iypos, istep, iheight, ipass;
/////////////////////////////////////////////////////////////////////////////

#define GIFBUFTAM 16384

struct rgb { byte r,g,b; };

////////////////////////// AD - for transparency ///////////////////////////////
static struct {
  byte transpcolflag:1;
  byte userinputflag:1;
  byte dispmeth:3;
  byte res:3;
  byte delaytimehi;
  byte delaytimelo;
  byte transpcolindex;
} gifgce;

static struct {                 /* Logic Screen Descriptor  */
  char header[6];        /* Firma and version */
  USHORT scrwidth;
  USHORT scrheight;
  char pflds;
  char bcindx;
  char pxasrat;
} dscgif;

static struct {             /* Image Descriptor */
  USHORT l;
  USHORT t;
  USHORT w;
  USHORT h;
  byte   pf;
} image;

static struct {           /*   Tabla de colores  */
  SHORT colres; /* color resolution */
  SHORT sogct;  /* size of global color table */
  rgb paleta[256];    /*  paleta  */
} TabCol;

static CImageIterator* iter;
static FILE *f;

static  int ibf = GIFBUFTAM+1;
static  byte buf[GIFBUFTAM];

int out_line(unsigned char *pixels, int linelen);

BOOL CImageGIF::ReadFile(const CString& imageFileName)
{
  if (imageFileName != "")
    filename = imageFileName;
//  puts("Empezando... ");

  if ((f = fopen((const char *)filename, "rb"))==NULL) {
 //		printf("no se pudo abrir!");
	return FALSE;
  }

	fread((char*)&dscgif,/*sizeof(dscgif)*/13,1,f);
	 //if (strncmp(dscgif.header,"GIF8",3)!=0) {
	 if (strncmp(dscgif.header,"GIF8",4)!=0) {
//		puts("no es la firma!");
		return FALSE;
	 }

////////////////////////// AD - for interlace ///////////////////////////////

	 //TabCol.sogct = 1<<((dscgif.pflds & 0x0007) + 0x0001);
	 //TabCol.colres = (dscgif.pflds>>6) & 7 + 1;
	 TabCol.sogct = 1 << (dscgif.pflds & 0x07)+1;
	 TabCol.colres = ((int)(dscgif.pflds & 0x70) >> 3) + 1;

	 // Global colour map?

	 if (dscgif.pflds & 0x80)
	 {
		fread((char*)TabCol.paleta,/*sizeof(struct rgb)*/3*TabCol.sogct,1,f);
		//log << "Global colour map" << endl;
	 }

	 char ch;

loop:

	 if (fread(&ch, 1, 1, f) <= 0)
		goto done;

	 if (ch == '!')                     // extension
	 {
		unsigned char count;
		unsigned char fc;

		//log << "EXTENSION: ";

		if (fread(&fc, 1, 1, f) <= 0)   // function-code
			goto done;

		//log << hex << (int)fc << dec << endl;

		//////////////// AD - for transparency //////////////////////////
		if (fc == 0xF9)
		{
			//log << "Transparent" << endl;

			if (fread(&count, 1, 1, f) <= 0)
				goto done;
			if (fread(&gifgce, 1, /*sizeof(gifgce)*/4, f) != count)
				goto done;

			if (gifgce.transpcolflag)
				bgindex = gifgce.transpcolindex;

		///////////////////////////////////////////////////////////////////
		}

		while (fread(&count, 1, 1, f) && count)
		{
			//log << "Skipping " << count << " bytes" << endl;
			fseek(f, count, SEEK_CUR);
		}

		goto loop;
	 }

	 else if (ch == ',')                 // image
	 {
		fread((char*)&image,/*sizeof(image)*/9,1,f);
		//log << "Image header" << endl;

		// Local colour map?

		if (image.pf & 0x80)
		{
			TabCol.sogct = 1 << ((image.pf & 0x07) +1);
			fread((char*)TabCol.paleta,/*sizeof(struct rgb)*/3*TabCol.sogct,1,f);
			//log << "Local colour map" << endl;
		}

		Create(image.w, image.h, 8);

		if ((image.pf & 0x80) || (dscgif.pflds & 0x80))
		{
			unsigned char r[256], g[256], b[256];

			int i, has_white = 0;

			for (i=0; i < TabCol.sogct; i++)
			{
				r[i] = TabCol.paleta[i].r;
				g[i] = TabCol.paleta[i].g;
				b[i] = TabCol.paleta[i].b;

				if (RGB(r[i],g[i],b[i]) == 0xFFFFFF)
					has_white = 1;
			}

			// Make transparency colour black...
			if (bgindex != -1)
				r[bgindex] = g[bgindex] = b[bgindex] = 0;

			// Fill in with white // AD
			if (bgindex != -1)
			{
				while (i < 256)
				{
					has_white = 1;
					r[i] = g[i] = b[i] = 255;
					i++;
				}
			}

			// Force last colour to white...   // AD
			if ((bgindex != -1) && !has_white)
				r[255] = g[255] = b[255] = 255;

			SetPalette((bgindex != -1 ? 256 : TabCol.sogct), r, g, b);
			//log << "Set colour map" << endl;
		}

		iter = new CImageIterator(this);
		iter->Upset();
		int badcode;
		ibf = GIFBUFTAM+1;
		GIFDecoder gifdec;

		interlaced = image.pf & 0x40;
		iheight = image.h;
		istep = 8;
		iypos = 0;
		ipass = 0;

		//if (interlaced) log << "Interlaced" << endl;

		gifdec.decoder(GetWidth(), badcode);
		delete iter;
		goto loop;
	 }

done:

	 fclose(f);

  return TRUE;
}

int get_byte()
{
  if (ibf>=GIFBUFTAM) {
	 fread(buf,GIFBUFTAM,1,f);
	 ibf = 0;
  }

  return buf[ibf++];
}

int out_line(unsigned char *pixels, int linelen)
{
////////////////////////// AD - for interlace ///////////////////////////////
  if (interlaced)
  {
	 iter->SetY(iheight-iypos-1);
	 iter->SetRow(pixels, linelen);

	 if ((iypos += istep) >= iheight)
	 {
		do
			{
				if (ipass++ > 0)
					istep /= 2;

				iypos = istep / 2;
			}
			  while (iypos > iheight);
	 }

	 return 0;
  }
  else
/////////////////////////////////////////////////////////////////////////////
  if (iter->ItOK()) {
	 iter->SetRow(pixels, linelen);
	 (void)iter->PrevRow();
	 return 0;
  }
  else {
//	 puts("chafeo");
	 return -1;
  }
}

#endif 	//	 CIMAGE_SUPPORT_GIF

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲蜜臀av乱码久久精品| 欧美一区三区四区| 亚洲国产精品v| 岛国精品在线播放| 国产精品嫩草影院com| av激情综合网| 一区二区三区在线高清| 欧洲av一区二区嗯嗯嗯啊| 午夜国产精品一区| 日韩美女一区二区三区| 精品一区二区日韩| 国产欧美一区二区精品婷婷| 99久久综合精品| 性感美女久久精品| 日韩三级视频中文字幕| 国产成人午夜99999| 亚洲人午夜精品天堂一二香蕉| 欧美视频第二页| 久久www免费人成看片高清| 国产亚洲美州欧州综合国| 成人一道本在线| 亚洲自拍偷拍欧美| 欧美电影免费观看高清完整版 | 欧美xxxxx裸体时装秀| 国产精品一区二区免费不卡| 国产精品久久久久影视| 欧美吻胸吃奶大尺度电影| 丝袜美腿亚洲色图| 久久久久国产精品人| 91美女片黄在线| 美女任你摸久久| 亚洲欧洲国产专区| 日韩一区二区三| 99精品久久免费看蜜臀剧情介绍| 天堂va蜜桃一区二区三区| 久久久无码精品亚洲日韩按摩| 色综合色综合色综合色综合色综合| 天天做天天摸天天爽国产一区| 国产欧美精品日韩区二区麻豆天美| 欧美午夜片在线观看| 国产精一区二区三区| 亚洲妇女屁股眼交7| 国产日韩成人精品| 91精品久久久久久久91蜜桃| 成人性生交大片免费看中文网站| 天天爽夜夜爽夜夜爽精品视频| 久久精品人人做人人综合| 欧美日韩视频在线第一区 | 免费欧美在线视频| 亚洲啪啪综合av一区二区三区| 久久综合久久99| 欧美电影在线免费观看| 99re8在线精品视频免费播放| 久久99精品久久久久婷婷| 一区二区三区不卡视频| 欧美国产一区在线| 精品粉嫩aⅴ一区二区三区四区| 欧美私人免费视频| 99视频精品全部免费在线| 精品一区二区在线免费观看| 亚洲国产精品一区二区久久 | 一区二区久久久久久| 国产日本欧美一区二区| 精品伦理精品一区| 欧美一卡二卡在线| 欧美日韩综合一区| 日本高清不卡视频| 91视频国产观看| 91伊人久久大香线蕉| 懂色av一区二区三区蜜臀| 久久精品国产77777蜜臀| 天天影视色香欲综合网老头| 亚洲国产一区二区三区| 亚洲欧美区自拍先锋| 国产精品视频线看| 国产日韩精品一区| 国产三级欧美三级日产三级99| 91精品国产美女浴室洗澡无遮挡| 欧美视频在线一区二区三区 | 五月综合激情婷婷六月色窝| 亚洲黄色片在线观看| 综合久久久久久久| 亚洲激情六月丁香| 亚洲国产一区二区三区青草影视| 亚洲国产视频在线| 午夜精品视频一区| 美女视频黄频大全不卡视频在线播放| 五月天国产精品| 久久爱www久久做| 国产在线一区二区| 处破女av一区二区| 99久久免费视频.com| 色婷婷国产精品| 欧美日韩日日骚| 日韩欧美精品三级| 国产日产亚洲精品系列| **性色生活片久久毛片| 一区二区三区精品在线观看| 丝瓜av网站精品一区二区| 日本在线不卡一区| 国产在线一区观看| 99re这里只有精品视频首页| 欧美三级三级三级爽爽爽| 欧美一区二区三区四区视频 | 国产目拍亚洲精品99久久精品| 亚洲国产精品激情在线观看| 亚洲黄色录像片| 日韩不卡免费视频| 国产成人精品免费视频网站| 色呦呦国产精品| 欧美一区二视频| 国产亚洲一区二区三区四区| 亚洲免费观看视频| 久久国内精品自在自线400部| 国产成人午夜高潮毛片| 91高清在线观看| 精品久久国产老人久久综合| 国产精品视频一二三区| 亚洲1区2区3区4区| 国产电影一区在线| 欧美色男人天堂| 国产日韩欧美高清在线| 亚洲午夜成aⅴ人片| 国产酒店精品激情| 欧美日韩在线亚洲一区蜜芽| 久久无码av三级| 亚洲国产成人porn| 粉嫩av亚洲一区二区图片| 欧美日韩国产高清一区二区 | 欧美唯美清纯偷拍| 国产视频一区在线观看| 首页亚洲欧美制服丝腿| 国产一区91精品张津瑜| 欧美疯狂性受xxxxx喷水图片| 久久精品视频在线免费观看| 肉丝袜脚交视频一区二区| 不卡av在线网| 日韩免费视频一区| 一区二区三区在线观看网站| 国产精品小仙女| 精品久久久久久综合日本欧美| 亚洲午夜激情av| 91浏览器打开| 国产欧美日韩亚州综合| 日韩av成人高清| 91久久精品一区二区三区| 欧美激情一区二区| 精品影视av免费| 91精品国产aⅴ一区二区| 亚洲天堂2016| 成人app软件下载大全免费| 久久久久久久精| 免费成人在线影院| 欧美另类久久久品| 亚洲激情校园春色| 99精品在线免费| 国产精品久久毛片| 成人丝袜视频网| 久久久亚洲精华液精华液精华液 | 欧美丰满少妇xxxxx高潮对白| 一个色妞综合视频在线观看| av电影一区二区| 国产精品久线观看视频| 成人性生交大片免费看在线播放| 久久久蜜桃精品| 国内不卡的二区三区中文字幕| 欧美va亚洲va在线观看蝴蝶网| 日韩av不卡在线观看| 欧美一级高清片| 美女任你摸久久| 久久―日本道色综合久久| 另类调教123区| 久久伊人蜜桃av一区二区| 国产在线精品不卡| 久久久精品蜜桃| 成人免费高清在线| 综合中文字幕亚洲| 一本大道久久a久久精二百| 亚洲蜜臀av乱码久久精品| 欧洲亚洲精品在线| 亚洲福利电影网| 日韩一区二区三区免费观看| 久久国内精品视频| 国产午夜久久久久| 成人av动漫网站| 亚洲一区二区精品3399| 欧美精品免费视频| 老汉av免费一区二区三区 | 成人性生交大合| 一区二区三区不卡在线观看| 欧美三级三级三级| 麻豆精品国产传媒mv男同| www国产成人| 99精品视频在线观看| 一区二区在线观看免费视频播放| 欧美精品丝袜中出| 国产精品99精品久久免费| 自拍偷拍欧美激情| 这里是久久伊人| 成人永久aaa|