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

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

?? basic.cpp

?? 圖像處理軟件,功能比較基礎
?? CPP
字號:
#include "stdafx.h"

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include <windows.h>

#include "common.h"
#include "basic.h"

/*****************************   fspace_1d  **************************/
/*  To allocation a 1_dimension dynamic array  */
/*    col -- the number of data                */
/*    length -- the length per datum           */
void *fspace_1d(int col,int length)
{
  void *b;

  b = (void *)calloc(col,length);
  if(!b) return NULL;
  return(b);
}

/*************      fspace_2d    ***************************************/
/*  To allocation a 2_dimension dynamic array  */
/*     row -- the row number                   */
/*     col -- the column number                */
/*     length -- the length per element        */
void **fspace_2d(int row,int col,int lenth)
{
  int i;
  void **b;

  b = (void **)calloc(row,sizeof(void *));
  if(!b) return NULL;
  for(i=0;i<row;i++)
  {
    b[i] = (void *)calloc(col,lenth);
    if (!b[i]) return NULL;
    }
  return(b);
}

/*************      fspace_2d    ***************************************/
/*  To allocation a 2_dimension dynamic array  */
/*     row -- the row number                   */
/*     col -- the column number                */
/*     length -- the length per element        */
unsigned char **fspace_2d1(int row,int col,int lenth)
{
  int i;
  unsigned char **b;

  b = new unsigned char*[row];
  if(!b) return NULL;
  for(i=0;i<row;i++)
  {
    b[i] = new unsigned char[col];
    if (!b[i]) return NULL;
    }
  return(b);
}
/*******************************  ffree_2d   ****************************/
/*  To free a 2_dimension dynamic array  */
void ffree_2d(void **a,int row)
{
  int i;

  for(i=0;i<row;i++) free(a[i]);
  free(a);
}

/*******************************  ffree_2d   ****************************/
/*  To free a 2_dimension dynamic array  */
/*  Use new & delete                     */
void ffree_2d1(void **a,int row)
{
  int i;

  for(i=0;i<row;i++) delete a[i];
  delete a;
}

/*****************   wfread1  ***********************/
/*  To open data file to read from, the file name is a parameter */
/*  NOT USED  */
FILE *wfread1(int *row,int *col,int *type,char *s)
{
  FILE *fp;
  unsigned char head_byte[64];

  if ((fp=fopen(s,"rb"))==NULL) return NULL;

  fread(head_byte,64,1,fp);
  *col = head_byte[4]+head_byte[5]*256;   /* column size   */
  *row = head_byte[6]+head_byte[7]*256;   /* row size      */
  /*  data type. 1:unsigned char,  2:int  3:float  4:double   */
  *type = head_byte[14]+head_byte[15]*256;

  return(fp);
}

/********************  INPUTIMAGEWITHNAME  **********************/
/*  Input a image with name FileName to array Image             */
unsigned char **InputImageWithName(int *Row,int *Col,char *FileName)
{
  int           RowNo,Type;
  unsigned char **Image;
  FILE          *fp;

  fp = wfread1(Row,Col,&Type,FileName);
  if(!fp) return NULL;
  Image = (unsigned char **)fspace_2d(*Row,*Col,sizeof(unsigned char));
  if(!Image) return NULL;
  for(RowNo=0;RowNo<*Row;RowNo++)
    fread(Image[RowNo],sizeof(unsigned char),*Col,fp);
  fclose(fp);

  return(Image);
}

/********************  INPUTIMAGEWITHNAME  **********************/
/*  Input a image with name FileName to array Image             */
/*  Use new & delete                                            */
unsigned char **InputImageWithName1(int *Row,int *Col,char *FileName)
{
  int           RowNo,Type;
  unsigned char **Image;
  FILE          *fp;
  int i;

  fp = wfread1(Row,Col,&Type,FileName);
  if(!fp) return NULL;
//  Image = (unsigned char **)fspace_2d(*Row,*Col,sizeof(unsigned char));
   Image = new unsigned char*[*Row];   //2001.9.12
   if(!Image) return NULL;
   for(i=0; i<*Row; i++)
   { Image[i] = new unsigned char[*Col];
     if(!Image[i]) return NULL;
   }
  if(!Image) return NULL;
  for(RowNo=0;RowNo<*Row;RowNo++)
    fread(Image[RowNo],sizeof(unsigned char),*Col,fp);
  fclose(fp);

  return(Image);
}

/********************  OUTPUTIMAGEWITHNAME  **********************/
/*  Output a image with name FileName to array Image             */
/*  Notes: Image must be a space allocated pointer               */
void OutputImageWithName(unsigned char **Image,int Row,int Col,char *FileName)
{
  short        RowNo;
  FILE       *fp;

  fp = wfwrite1(Row,Col,1,FileName);
  for(RowNo=0;RowNo<Row;RowNo++)
    fwrite(Image[RowNo],sizeof(unsigned char),Col,fp);
  fclose(fp);
}

/**************************  wfwrite1    *****************************/
/* To open a file to write data in */
FILE *wfwrite1(int row,int col,int type,char *filen)
{
  short i;
  unsigned char head_byte[64];
  FILE *fp;

  if ((fp=fopen(filen,"wb"))==NULL)  return NULL;

  for(i=0;i<64;i++)  head_byte[i] = 0;

  head_byte[0] = 'I';  /* image type. 'I':b/w image, 'C':color image */
  head_byte[1] = 'M';
  head_byte[2] = head_byte[3] = 0;  /* comment space */
  head_byte[4] = col % 256;
  head_byte[5] = col / 256;  /* column size */
  head_byte[6] = row % 256;
  head_byte[7] = row / 256;  /* row size */
  head_byte[8] = head_byte[9] = 0;  /* column start */
  head_byte[10] = head_byte[11] = 0;  /* row start */
  head_byte[12] = head_byte[13] =0;
  head_byte[14] = type % 256;
  head_byte[15] = type / 256;  /* data type. 1:unsigned char, 2:int,   */
                               /*            3:float,         4:double */
  fwrite(head_byte,64,1,fp);

  return(fp);
}

unsigned char **ReadBMPFile(int *Row,int *Col,char *FileName)
{
	FILE *fp;
	BITMAPFILEHEADER BmpFileHeader;
	BITMAPINFOHEADER BmpInfoHeader;
	short iRow,iCol;
	unsigned char **Image;
	

	short i,j;
	short bytes,linebytes,skip;
	unsigned char d1,d2,d3;
	long off;
	
	 /*attempt to open the file*/
    if ((fp=fopen(FileName,"rb"))==NULL) return NULL;
//    if (fread(&BmpFileHeader,1,sizeof(BITMAPFILEHEADER),fp)!=sizeof(BITMAPFILEHEADER))
	if (fread(&BmpFileHeader.bfType,1,sizeof(unsigned short),fp)!=sizeof(unsigned short)) return NULL;
	if (fread(&BmpFileHeader.bfSize,1,sizeof(unsigned long),fp)!=sizeof(unsigned long)) return NULL;
	if (fread(&BmpFileHeader.bfReserved1,1,sizeof(unsigned short),fp)!=sizeof(unsigned short)) return NULL;
	if (fread(&BmpFileHeader.bfReserved2,1,sizeof(unsigned short),fp)!=sizeof(unsigned short)) return NULL;
	if (fread(&BmpFileHeader.bfOffBits,1,sizeof(unsigned long),fp)!=sizeof(unsigned long)) return NULL;

	if (fread(&BmpInfoHeader,1,sizeof(BITMAPINFOHEADER),fp)!=sizeof(BITMAPINFOHEADER))
		return NULL;

	iCol=(short)BmpInfoHeader.biWidth;
	iRow=(short)BmpInfoHeader.biHeight;

	Image = (unsigned char **)fspace_2d(iRow,iCol,sizeof(unsigned char));
	if(BmpInfoHeader.biBitCount==8) {
		bytes=iCol;
		linebytes=((bytes+3)/4)*4;
		skip=linebytes-bytes;
		for (i=0;i<iRow;i++)
		{   
			off=(long)(linebytes)*(long)(i+1);
			fseek(fp,-off,SEEK_END);
			fread(Image[i],iCol,1,fp);
			}
	}
	else if(BmpInfoHeader.biBitCount==24) {
		 bytes=iCol*3;
		 linebytes=((bytes+3)/4)*4;
		 for (i=0;i<iRow;i++)
		 {    j=0;
			  off=(long)(linebytes)*(long)(i+1);
		      fseek(fp,-off,SEEK_END);
			  while (j<iCol)
			  {      fread(&d1,1,1,fp);
			         fread(&d2,1,1,fp);
					 fread(&d3,1,1,fp);
                     Image[i][j]=(unsigned char)(d1*0.299+d2*0.587+d3*0.114);
					 j++;
			  }
		 }
	}

	fclose(fp);
	*Row = iRow;
	*Col = iCol;
	return Image;
}

void OutputBMPWithName(unsigned char **image, int Row, int Col,char *FileName)
{
	FILE *fp;
	BITMAPFILEHEADER FileHeader;
	BITMAPINFOHEADER InfoHeader;
	RGBQUAD bmiColors[256];

	short i;
	short linebytes,skipstep,skip[3];
	long off;

    for (i=0;i<3;i++)
         skip[i]=0;

    FileHeader.bfType=(short)0x4d42;
    FileHeader.bfReserved1=0;
    FileHeader.bfReserved2=0;

    InfoHeader.biSize=40;
    InfoHeader.biPlanes=1;
    InfoHeader.biCompression=0;
    InfoHeader.biXPelsPerMeter=0;
    InfoHeader.biYPelsPerMeter=0;
    InfoHeader.biClrUsed=0;
    InfoHeader.biClrImportant=0;

    for (i=0;i<256;i++)
    {    bmiColors[i].rgbRed=(unsigned char)i;
	     bmiColors[i].rgbGreen=(unsigned char)i;
		 bmiColors[i].rgbBlue=(unsigned char)i;
		 bmiColors[i].rgbReserved=0;
	}

   /*attempt to open the file*/
    if ((fp=fopen(FileName,"wb"))==NULL) return ;

    linebytes=((Col+3)/4)*4;
    skipstep=linebytes-Col;

	FileHeader.bfSize=Row*Col+54+256*4;
	FileHeader.bfOffBits=54+256*4;

	InfoHeader.biWidth=Col;
	InfoHeader.biHeight=Row;
	InfoHeader.biBitCount=8;
	InfoHeader.biSizeImage=Row*Col;


    //fwrite(&FileHeader,sizeof(BITMAPFILEHEADER),1,fp);
	fwrite(&FileHeader.bfType,1,sizeof(unsigned short),fp);
	fwrite(&FileHeader.bfSize,1,sizeof(unsigned long),fp);
	fwrite(&FileHeader.bfReserved1,1,sizeof(unsigned short),fp);
	fwrite(&FileHeader.bfReserved2,1,sizeof(unsigned short),fp);
	fwrite(&FileHeader.bfOffBits,1,sizeof(unsigned long),fp);

//	fwrite(&FileHeader,14,1,fp);
	fwrite(&InfoHeader,sizeof(BITMAPINFOHEADER),1,fp);
	fwrite(bmiColors,sizeof(RGBQUAD),256,fp);

	for (i=Row-1;i>=0;i--)
	 {    off=(long)(Col)*(long)(i+1);
		  fwrite(image[i],1,Col,fp);
		  fwrite(skip,1,skipstep,fp);
	 }    
	fclose(fp);
	}


/* chang the extented name by increasing 1 */
/* return 1 for success, 0 for error       */
/*                                         */
/* Writen by ZUO Zhengrong                 */
int ChangeFileName(char *filename)
{
  char *pExtName=NULL;
  int nFileLen;	//the length of file name
  int bExtName;	// the flag of the extension name being digital
  int i;
  int start,end,current;

  nFileLen = strlen(filename);
  pExtName = strchr(filename,'.');

  bExtName = 1;
  if(pExtName)  {  //verify if the extension name is digital
    for(i=nFileLen-(&filename[nFileLen-1] - pExtName); i<nFileLen; i++)
	if(filename[i]>'9' || filename[i]<'0') bExtName = 0;
  }
  else bExtName = 0;  //if no extension name
	

  if(bExtName) 
    end = nFileLen-1;
  else 
  {
	/*check if the former name have digital number*/
    if(pExtName==NULL) end = nFileLen-1;  /*end is the pointer to the last digital character*/
    else end = pExtName - filename -1;
  }

  while(filename[end]>'9' || filename[end]<'0') 
  {
    end--;
    if(end==0) return 0;
  }

  start = end;
  while(filename[start]<='9' && filename[start]>='0')  
  {
    start--;
    if(start<0) break;
  }
  start += 1;

  current = end;
  while(1) 
  {
    if(filename[current]=='9') 
    {
       filename[current]='0';
       current--;
       if(current<start) break;
    }
    else 
    {
       filename[current]++;
       break;
    }
  }
  return 1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区免费电影| 精品欧美乱码久久久久久1区2区| 波多野结衣精品在线| 色诱视频网站一区| 日韩欧美国产麻豆| 一区二区三区中文字幕电影 | 中文字幕乱码一区二区免费| 亚洲成国产人片在线观看| 婷婷久久综合九色综合绿巨人| 亚洲精品视频免费观看| 国产一区二区在线看| 欧美三级欧美一级| 国产精品久久久久婷婷二区次| 日本aⅴ免费视频一区二区三区| 91在线精品一区二区三区| 国产精品欧美经典| 亚洲第一狼人社区| 日韩美女天天操| 国产福利一区在线| 国产女人18毛片水真多成人如厕| 国产自产v一区二区三区c| 欧美一区二区视频网站| 丝袜美腿成人在线| 日韩一区二区视频| 夫妻av一区二区| 亚洲欧洲精品一区二区精品久久久 | 精品一区二区综合| 欧美日韩国产高清一区二区| 亚洲乱码日产精品bd| 欧美绝品在线观看成人午夜影视| 香蕉成人啪国产精品视频综合网| 26uuu国产日韩综合| 国产麻豆视频精品| 亚洲激情五月婷婷| 国产天堂亚洲国产碰碰| 成人aa视频在线观看| 亚洲三级久久久| 欧美制服丝袜第一页| 亚洲永久免费av| 欧美欧美午夜aⅴ在线观看| 国产精品夜夜嗨| 专区另类欧美日韩| 亚洲精品在线电影| 成人午夜激情在线| 亚洲一区二区精品视频| 久久久噜噜噜久久人人看 | 播五月开心婷婷综合| 视频一区二区欧美| 国产成人自拍网| 午夜精品一区二区三区免费视频| 中文字幕不卡的av| 欧美不卡在线视频| 欧美日产国产精品| 在线观看视频91| 99久久精品免费| 风流少妇一区二区| 国产一区二区三区高清播放| 奇米四色…亚洲| 亚洲成人久久影院| 亚洲一区免费在线观看| 亚洲视频 欧洲视频| 国产欧美日韩亚州综合| 26uuu精品一区二区| 日韩欧美亚洲国产精品字幕久久久| 91福利国产精品| 青青青爽久久午夜综合久久午夜 | 色拍拍在线精品视频8848| 国产91精品一区二区麻豆亚洲| 激情欧美日韩一区二区| 日本不卡123| 蜜桃视频在线一区| 亚洲天堂2016| 亚洲视频电影在线| 亚洲免费观看高清完整版在线观看熊 | 亚洲影视在线播放| 亚洲免费观看高清在线观看| 亚洲女厕所小便bbb| 亚洲欧美日韩久久| 亚洲精品亚洲人成人网在线播放| 中文字幕一区在线观看视频| 国产精品对白交换视频| 中文字幕制服丝袜一区二区三区 | 欧美丝袜第三区| 国产aⅴ综合色| 大白屁股一区二区视频| 成人精品高清在线| 色妹子一区二区| 欧美天堂亚洲电影院在线播放| 欧美视频中文字幕| 在线电影一区二区三区| 精品少妇一区二区三区视频免付费 | 大尺度一区二区| 国产午夜久久久久| 日本一区二区三区在线不卡| 国产精品妹子av| 夜夜嗨av一区二区三区中文字幕| 亚洲成av人片| 精品一区二区久久久| 成人午夜激情在线| 欧美私模裸体表演在线观看| 3d动漫精品啪啪1区2区免费| 国产成人亚洲精品狼色在线| 成人一区二区三区中文字幕| 在线观看亚洲精品| 欧美一卡2卡三卡4卡5免费| 久久久亚洲欧洲日产国码αv| 国产精品久久久久7777按摩| 亚洲图片有声小说| 亚洲激情一二三区| 毛片av中文字幕一区二区| 国产成人精品一区二区三区四区 | 亚洲影院免费观看| 看片的网站亚洲| 奇米色一区二区| 成人精品国产免费网站| 欧美日本一区二区三区四区| 国产亚洲一二三区| 亚洲成年人网站在线观看| 亚洲国产人成综合网站| 久草在线在线精品观看| 日本韩国一区二区| www欧美成人18+| 亚洲精品v日韩精品| 久久se这里有精品| 欧美中文字幕不卡| 欧美经典一区二区| 日韩av一级片| 蜜臀av一区二区| 国产精品夜夜嗨| 在线播放国产精品二区一二区四区| 久久精品欧美日韩| 日韩影院免费视频| 一本到一区二区三区| 久久天堂av综合合色蜜桃网| 亚洲第一激情av| 99精品黄色片免费大全| 精品国产一区二区三区久久久蜜月| 亚洲人xxxx| 大白屁股一区二区视频| 久久综合色之久久综合| 爽好多水快深点欧美视频| 9人人澡人人爽人人精品| 国产欧美日本一区视频| 久久99精品久久久久久动态图| 欧美午夜精品理论片a级按摩| 国产精品久久久久久久蜜臀| 国模冰冰炮一区二区| 欧美大片拔萝卜| 日韩精品久久理论片| 欧美精品乱人伦久久久久久| 国产精品久久毛片a| 精品国产免费人成在线观看| 亚洲一线二线三线久久久| 成人激情免费视频| 国产天堂亚洲国产碰碰| 精品一区二区在线免费观看| 日韩欧美中文字幕精品| 五月综合激情婷婷六月色窝| 91久久免费观看| 亚洲卡通欧美制服中文| 99久久精品99国产精品| 国产精品丝袜一区| jizz一区二区| 1024成人网| 色婷婷精品久久二区二区蜜臂av | 日韩一级二级三级| 青娱乐精品视频| 日韩三区在线观看| 理论电影国产精品| 精品国产伦一区二区三区免费 | 91在线视频播放地址| 18成人在线观看| 91精品福利在线| 亚洲高清不卡在线观看| 欧美人与禽zozo性伦| 美女www一区二区| 久久综合色一综合色88| 国产成人av电影| 亚洲欧洲日韩av| 日韩欧美中文字幕一区| 亚洲午夜国产一区99re久久| 欧美日韩精品一二三区| 日本不卡一区二区三区高清视频| 91精品国产欧美日韩| 精品一区二区三区在线观看| 国产三级精品三级| 97久久人人超碰| 亚洲6080在线| 欧美sm极限捆绑bd| 成人黄色网址在线观看| 亚洲精品一卡二卡| 在线成人午夜影院| 国产精品亚洲第一区在线暖暖韩国| 国产日韩高清在线| 色妹子一区二区| 久久er99热精品一区二区| 国产精品国产精品国产专区不片| 在线精品视频免费播放| 久久99精品久久久久久久久久久久| 国产精品午夜免费|