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

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

?? main.cpp

?? 基于BMP圖像的信息隱藏
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
putToHeap('\0',filespace); 
putToHeap('\0',filespace); 
putToHeap('\0',filespace); 

hotspots=(LOOKUP*)calloc(1,sizeof(LOOKUP)); 
if (hotspots==NULL) { 
printf("ERROR\n\nOut of memory\n"); 
exit(4); 
} 
hotspots->dataspace=(unsigned long int*)calloc(LOOKUP_INITLEN,sizeof(unsigned long int)); 
if (hotspots==NULL) { 
printf("ERROR\n\nOut of memory\n"); 
exit (4); 
} 
hotspots->currentlen=LOOKUP_INITLEN; 
maxencode=resolveMaxEncode(BMPworking, hotspots); 

if (maxencode< 13) 
return FALSE; 

longtemp=maxencode; 
bit4=(unsigned int)longtemp/16777216; 
longtemp=longtemp-(unsigned long)((unsigned long)bit4*16777216); 
bit3=(unsigned int)longtemp/65536; 
longtemp=longtemp-(unsigned long)((unsigned long)bit3*65536); 
bit2=(unsigned int)longtemp/256; 
longtemp=longtemp-(unsigned long)((unsigned long)bit2*256); 
bit1=(unsigned int)longtemp; 
*(filespace->dataspace+2)=bit1; 
*(filespace->dataspace+3)=bit2; 
*(filespace->dataspace+4)=bit3; 
*(filespace->dataspace+5)=bit4; 

for (i=filespace->heaplen; i< maxencode; i++) 
putToHeap('\0',filespace); 

/* encode blank data into bitmap */ 
encodeData(BMPworking,filespace,hotspots); 

return TRUE; 
} 


void dumpFileDirectory(HEAP* filespace) { 

unsigned long int offset,filelen; 
unsigned long int filectr,bytectr; 
int filenamelen; 

offset=9; 
filectr=0; 
bytectr=0; 

printf("\nFilename Size (bytes)\n-------- ------------\n"); 
for (;;) { 
filelen=0; 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*1); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*256); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*65536); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*16777216); 
if (filelen==0) 
break; 
filenamelen=strlen(void(*filespace->dataspace+offset))+1; 
printf("%-18s%lu\n",filespace->dataspace+offset,filelen-filenamelen); 
offset=offset+filelen; 
filectr++; 
bytectr+=filelen-filenamelen; 
} 
if (filectr==0) 
printf("No files found in archive!\n"); 
else 
printf("\nTotal %lu byte(s), in %lu file(s)\n",bytectr,filectr); 
} 

void dumpFileStats(BITMAP* BMPworking, HEAP* filespace) { 

unsigned long int offset,filelen,totalsize; 
unsigned long int filectr,bytectr; 
unsigned long int maxencode; 
float perc_used; 
LOOKUP* hotspots; 

if (filespace->heaplen==0) { 
hotspots=(LOOKUP*)calloc(1,sizeof(LOOKUP)); 
hotspots->dataspace=(unsigned long int*)calloc(LOOKUP_INITLEN,sizeof(unsigned long int)); 
hotspots->currentlen=LOOKUP_INITLEN; 
printf("? Calculating Data Capacity...."); 
maxencode=resolveMaxEncode(BMPworking, hotspots); 
free(hotspots); 

printf("OK\n\nThis file does not contain any BlindSide hidden data\n"); 
printf("The predicted storage capacity for this image is %lu byte(s) [%d Kb]\n",maxencode,(int)((float)maxencode/1024)); 
} 
else { 

totalsize=0; 
totalsize+=((unsigned long int)(*(filespace->dataspace+2))*1); 
totalsize+=((unsigned long int)(*(filespace->dataspace+3))*256); 
totalsize+=((unsigned long int)(*(filespace->dataspace+4))*65536); 
totalsize+=((unsigned long int)(*(filespace->dataspace+5))*16777216); 

offset=9; 
filectr=0; 
bytectr=0; 

for (;;) { 
filelen=0; 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*1); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*256); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*65536); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*16777216); 
bytectr+=filelen+4; 
if (filelen==0) 
break; 
offset=offset+filelen; 
filectr++; 
} 

bytectr+=9; 

perc_used=(float)100/totalsize; 
perc_used=perc_used*(float)(totalsize-bytectr); 

printf("\nArchive Found - Capacity %lu byte(s) [%lu Kb]\n\n",totalsize,totalsize/1024); 
printf("Total files - %lu, using %lu byte(s)\n",filectr,bytectr); 
printf("Freespace remaining: %lu byte(s) [%d%%]\n",totalsize-bytectr,(int)perc_used); 
} 
} 


void addFileToArchive(HEAP* filespace, FILE* handle, char* filename) { 

HEAP* filedump; 
int i; 
unsigned long int offset,filelen,freespace,ilong; 
unsigned long int lastfile,lastfile2; 
unsigned int bit4,bit3,bit2,bit1; 

offset=9; 

for (;;) { 
filelen=0; 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*1); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*256); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*65536); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*16777216); 
lastfile=offset-4; 
if (filelen==0) 
break; 
if (stricmp(&filename,filespace->dataspace+offset)==0) { 
printf("FATAL: File %s already exists in the archive\n",filename); 
exit(4); 
} 
offset=offset+filelen; 
} 

freespace=(filespace->heaplen)-(lastfile+4); 

filedump=(HEAP*)calloc(1,sizeof(HEAP)); 
initialiseHeap(filedump); 
printf("Adding.... %s\n",filename); 

/* Write filename */ 
for(i=0; i<strlen(filename); i++) { 
putToHeap(filename[i],filedump); 
} 
putToHeap('\0',filedump); 

/* Write file */ 
if (!streamFileToHeap(handle,filedump)) { 
printf("\nFATAL: Out of memory, while reading file to encode\n"); 
exit(4); 
} 

if (filedump->heaplen==(strlen(filename)+1)) { 
printf("\nFATAL: File to encode is empty! (zero length)\n"); 
exit(4); 
} 

/* Write next file length (end of chain) */ 
putToHeap('\0',filedump); 
putToHeap('\0',filedump); 
putToHeap('\0',filedump); 
putToHeap('\0',filedump); 

if (freespace< filedump->heaplen) { 
printf("\nFATAL: There isn't enough room inside your image to encode that file\n\nYour data coding needs: %ld bytes\nFreespace inside bitmap: %ld bytes\n\n",filedump->heaplen,freespace); 
printf("It is possible the image you are trying to encode into is too complex,\nor your file to encode is too large. Maybe try zipping it first?\n"); 
exit(7); 
} 

for (ilong=0; ilong< filedump->heaplen; ilong++) { 
*(filespace->dataspace+offset+ilong)=*(filedump->dataspace+ilong); 
} 

lastfile2=filedump->heaplen-4; 
bit4=(unsigned int)lastfile2/16777216; 
lastfile2=lastfile2-(unsigned long)((unsigned long)bit4*16777216); 
bit3=(unsigned int)lastfile2/65536; 
lastfile2=lastfile2-(unsigned long)((unsigned long)bit3*65536); 
bit2=(unsigned int)lastfile2/256; 
lastfile2=lastfile2-(unsigned long)((unsigned long)bit2*256); 
bit1=(unsigned int)lastfile2; 

*(filespace->dataspace+lastfile)=bit1; 
*(filespace->dataspace+lastfile+1)=bit2; 
*(filespace->dataspace+lastfile+2)=bit3; 
*(filespace->dataspace+lastfile+3)=bit4; 

removeHeap(filedump); 
free(filedump); 
} 
int extractFile(HEAP* filespace, char* criteria) { 

unsigned long int offset,filelen,filectr; 
unsigned long int extractctr,i; 
int alwaysoverwrite; 
int extractIt; 
int wasprompt; 
char tmpchar[129]; 
FILE* outfile; 
int filenamelen; 

offset=9; 
extractctr=0; 
filectr=0; 
alwaysoverwrite=FALSE; 


for (;;) { 
filelen=0; 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*1); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*256); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*65536); 
filelen+=((unsigned long int)(*(filespace->dataspace+(offset++)))*16777216); 
if (filelen==0) 
break; 
filectr++; 
if (criteria==NULL || stricmp(filespace->dataspace+offset,criteria)==0) { 
/* extract this file */ 
printf("Extracting.... %s",filespace->dataspace+offset); 
extractIt=TRUE; 
if (checkExists(filespace->dataspace+offset) && !alwaysoverwrite) { 
wasprompt=TRUE; 
printf(" - already exists, Overwrite? (y/N/a)"); 
fflush(stdin); 
fscanf(stdin,"%s",tmpchar); 
if (stricmp(tmpchar,"A")==0) { 
alwaysoverwrite=TRUE; 
printf("\n"); 
} 
else if (stricmp(tmpchar,"Y")==0) { 
printf("\n"); 
} 
else { 
printf("Skipping file--^\n"); 
extractIt=FALSE; 
} 
} 
else { 
printf("\n"); 
wasprompt=FALSE; 
} 
if (extractIt) { 
/* Do the actual extraction */ 
extractctr++; 
outfile=fopen(filespace->dataspace+offset,"wb"); 
filenamelen=strlen(filespace->dataspace+offset)+1; 
while ((*(filespace->dataspace+offset))!='\0') { 
offset++; 
} 
offset++; 
for (i=0; i< filelen-filenamelen; i++) 
fprintf(outfile,"%c",*(filespace->dataspace+offset+i)); 
fclose(outfile); 
offset=offset+(filelen-filenamelen); 
} 
else { 
offset+=filelen; 
} 
} 
else { 
offset+=filelen; 
} 
} 


if (filectr==0) { 
printf("This BlindSide archive is empty - no files to extract\n"); 
} 
else { 
if (!wasprompt) 
printf("\n"); 

if (extractctr==0) 
printf("No files in the archive matched your extract request!\n"); 
else 
printf("Extracted %lu file(s) successfully.\n",extractctr); 
} 
return extractctr; 

} 

int checkExists(char* filename) { 
FILE* tester; 

if ((tester=fopen(filename,"rb"))) { 
fclose(tester); 
return TRUE; 
} 

return FALSE; 


} 

void flattenBitmap(BITMAP* src, LOOKUP* store) { 

/* passes over data as if reading it - but just flattens all data to '0' bits and 
compiles a hotspots list */ 

unsigned long offset,tmp; 
unsigned char thisR; 
unsigned char thisG; 
unsigned char thisB; 
unsigned char lookaheadR; 
unsigned char lookaheadG; 
unsigned char lookaheadB; 
int dom,lookaheaddom; 
int keepflag,keepflag2; 
unsigned long int hits; 
PIXEL getdata; 
PIXEL controlPixel, thisPixel; 
unsigned long int longtmp; 
unsigned long int longtmp2; 
unsigned long int *longptrtmp; 

offset=0; 

while(offset<(src->x_size*src->y_size)) { 
getdata=getIndexedPixel(offset, src); 
thisR=getdata.red; 
thisG=getdata.green; 
thisB=getdata.blue; 

dom=biggest_of_3(thisR,thisG,thisB); 
keepflag=FALSE; 

/* If 1 col varies from others by at least 3 = > candidate */ 
if (dom==thisG && abs(thisG-thisR) >2 && abs(thisG-thisB) >2) 
keepflag=TRUE; 
if (dom==thisB && abs(thisB-thisR) >2 && abs(thisB-thisG) >2) 
keepflag=TRUE; 
if (dom==thisR && abs(thisR-thisB) >2 && abs(thisR-thisG) >2) 
keepflag=TRUE; 
if (keepflag==FALSE) { 
offset++; 
continue; 
} 

/* only one of the 3 cols=dom here, and that col is at least 
3 points greater than the others */ 

/* see if dominant col continues on more pixels(+ or - 1) and that other 
cols dont challenge its dominance */ 

tmp=offset+1; 
hits=1; 
while(tmp<(src->x_size*src->y_size)) { 
getdata=getIndexedPixel(tmp, src); 
lookaheadR=getdata.red; 
lookaheadG=getdata.green; 
lookaheadB=getdata.blue; 
keepflag=FALSE; 
if (dom==thisG && abs(lookaheadG-thisG)< 2) 
keepflag=TRUE; 
if (dom==thisR && abs(lookaheadR-thisR)< 2) 
keepflag=TRUE; 
if (dom==thisB && abs(lookaheadB-thisB)< 2) 
keepflag=TRUE; 

/* check dom is still dominant col by at least 3 */ 
lookaheaddom=biggest_of_3(lookaheadR,lookaheadG,lookaheadB); 
keepflag2=FALSE; 
if (thisR==dom && lookaheadR==lookaheaddom && abs(lookaheadR-lookaheadG) >2 && abs(lookaheadR-lookaheadB) >2) 
keepflag2=TRUE; 
if (thisG==dom && lookaheadG==lookaheaddom && abs(lookaheadG-lookaheadR) >2 && abs(lookaheadG-lookaheadB) >2) 
keepflag2=TRUE; 
if (thisB==dom && lookaheadB==lookaheaddom && abs(lookaheadB-lookaheadR) >2 && abs(lookaheadB-lookaheadG) >2) 
keepflag2=TRUE; 

if (keepflag==FALSE || keepflag2==FALSE) 
break; 
hits++; 
tmp++; 
} 

if (hits >2) { 
for (longtmp=offset+2; longtmp< offset+hits; longtmp++) { 
controlPixel=getIndexedPixel(offset,src); 
thisPixel=getIndexedPixel(longtmp,src); 
dom=biggest_of_3(controlPixel.red, controlPixel.green, controlPixel.blue); 
if (dom==controlPixel.red) { 
thisPixel.red=controlPixel.red; 
} 
if (dom==controlPixel.green) { 
thisPixel.green=controlPixel.green; 
} 
if (dom==controlPixel.blue) { 
thisPixel.blue=controlPixel.blue; 
} 
setIndexedPixel(longtmp,src,thisPixel); 

/* store in lookup table */ 
if (store->curitem >=store->currentlen) { 
longptrtmp=store->dataspace; 
store->dataspace=(unsigned long int*)calloc(2*store->currentlen,sizeof(unsigned long int)); 
for (longtmp2=0; longtmp2< store->currentlen; longtmp2++) { 
*(store->dataspace+longtmp2)=*(longptrtmp+longtmp2); 
} 
free (longptrtmp); 
longptrtmp=NULL; 
store->currentlen*=2; 
} 
*(store->dataspace+(store->curitem++))=longtmp; 
} 
offset+=hits; 
} 
else { 
offset++; 
} 
} 

} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费久久精品视频| 天天操天天综合网| 成av人片一区二区| 亚洲一区二区三区激情| 制服丝袜av成人在线看| 精品午夜久久福利影院| 中文字幕免费观看一区| 91免费观看视频在线| 午夜伊人狠狠久久| 国产视频在线观看一区二区三区| av网站一区二区三区| 亚洲国产另类av| 亚洲国产精品成人综合| 欧美日韩国产小视频在线观看| 午夜精品久久久久久久99水蜜桃| 26uuu成人网一区二区三区| 成人国产精品免费观看| 日韩不卡免费视频| 亚洲欧美日韩小说| 国产精品久久久久四虎| 欧美成人猛片aaaaaaa| 欧美日韩国产在线观看| 99精品视频一区二区三区| 国产二区国产一区在线观看| 老司机精品视频一区二区三区| 一区二区三区在线影院| 亚洲免费观看高清完整版在线观看熊| 精品久久久久久无| 日韩欧美一区二区视频| 精品久久久久av影院| 久久久精品黄色| 欧美国产日韩一二三区| 亚洲日本电影在线| 国产精品久久久久久久久动漫| 久久久久97国产精华液好用吗| 久久久国产一区二区三区四区小说 | 久久久久久久综合狠狠综合| 亚洲精品在线三区| 久久久久久久久久美女| 中文字幕一区二区视频| 亚洲美女区一区| 国产99久久久精品| 色丁香久综合在线久综合在线观看| 一本大道久久a久久精二百| 欧美性大战xxxxx久久久| 日韩久久免费av| 国产精品久久久久久久久免费桃花 | 欧美色偷偷大香| 欧美日韩国产中文| 3d动漫精品啪啪| 精品人在线二区三区| 91国在线观看| 亚洲国产高清aⅴ视频| 一区二区三区日本| 亚洲综合色视频| 国产剧情一区在线| 91色乱码一区二区三区| 日韩欧美一区二区在线视频| 成人av电影在线| 欧美精品在线视频| 国产午夜精品理论片a级大结局| 国产精品久久夜| 男女男精品视频| 欧美色国产精品| 亚洲欧洲一区二区在线播放| 日本va欧美va欧美va精品| 99视频在线精品| 69堂国产成人免费视频| 亚洲精选在线视频| 成人毛片在线观看| 精品国产区一区| 水野朝阳av一区二区三区| a在线播放不卡| 2021国产精品久久精品| 亚洲乱码国产乱码精品精小说 | 国产福利一区在线观看| 91精品国产91热久久久做人人| 亚洲免费毛片网站| 色中色一区二区| 精品久久99ma| 成人午夜看片网址| wwwwxxxxx欧美| 国产精品一区二区在线播放| 久久综合色之久久综合| 韩国精品一区二区| 久久久国产精品不卡| 粉嫩高潮美女一区二区三区| 精品国产百合女同互慰| 蜜臀av一区二区在线免费观看| 欧美猛男男办公室激情| 日韩不卡一区二区三区| 日韩一区二区免费在线电影| 美女视频一区二区| 中文字幕免费不卡在线| 色88888久久久久久影院野外| 亚洲精品视频在线观看免费| 欧美丰满美乳xxx高潮www| 日韩主播视频在线| 精品国产乱码久久久久久浪潮 | 最新欧美精品一区二区三区| 91色九色蝌蚪| 日本在线不卡视频一二三区| 精品少妇一区二区三区日产乱码| 国产成人午夜高潮毛片| 亚洲成av人**亚洲成av**| 日本一区二区三区dvd视频在线| 91福利视频久久久久| 黑人巨大精品欧美一区| 亚洲综合另类小说| 中文字幕欧美国产| 26uuu精品一区二区| 欧美性色黄大片手机版| 欧美性大战xxxxx久久久| 国产酒店精品激情| 激情五月播播久久久精品| 亚洲伊人伊色伊影伊综合网| 亚洲图片欧美激情| 亚洲国产精品激情在线观看| 日韩欧美激情四射| 日韩欧美亚洲国产另类| 91精品国产91久久久久久最新毛片| 91网站在线播放| 在线免费观看一区| 91热门视频在线观看| 粉嫩aⅴ一区二区三区四区| 国产综合色在线视频区| 国产一区在线看| 国产伦理精品不卡| 99re亚洲国产精品| 99精品国产99久久久久久白柏 | 91精品国产综合久久久久久久| 日韩一区二区不卡| 一个色妞综合视频在线观看| 国产乱人伦精品一区二区在线观看 | 99久久精品免费精品国产| 国产综合色精品一区二区三区| 国产乱一区二区| 成人午夜大片免费观看| 成人美女视频在线观看18| 日本高清免费不卡视频| 欧洲精品中文字幕| 日韩精品中文字幕一区| 日韩一级在线观看| 日韩欧美一级二级| 日韩**一区毛片| 成人精品高清在线| 国产午夜精品久久| 国产综合一区二区| 久久中文娱乐网| 精品一区二区三区在线视频| 国产一区二区久久| 国产欧美日韩在线看| 视频一区二区不卡| 91黄色小视频| 亚洲欧洲日韩综合一区二区| 美国三级日本三级久久99| 91久久一区二区| 亚洲视频一区在线| 欧美日韩成人一区| 日韩中文字幕91| 欧美老年两性高潮| 亚洲成人精品影院| 欧美成人高清电影在线| 久久草av在线| 久久久久久久久一| 欧美性一级生活| 日韩精品一区二区在线观看| 久久66热偷产精品| 亚洲人成小说网站色在线| 欧美一级在线免费| 99re这里只有精品首页| 亚洲男人的天堂在线观看| 日韩网站在线看片你懂的| 99re视频这里只有精品| 午夜一区二区三区在线观看| 91精品国产色综合久久不卡电影 | 亚洲欧美影音先锋| 91日韩精品一区| 日韩在线a电影| 日韩精品自拍偷拍| 成人一区在线观看| 亚洲自拍偷拍九九九| 久久一区二区三区国产精品| 成人a免费在线看| 亚洲电影第三页| 中文字幕一区二区三区av| 欧美一区二区三区不卡| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲精品老司机| 久久蜜桃香蕉精品一区二区三区| 成熟亚洲日本毛茸茸凸凹| 午夜伦理一区二区| 亚洲精品免费在线| 国产精品乱码妇女bbbb| 欧美精品视频www在线观看| 91在线国内视频| 国产白丝精品91爽爽久久 | 夜夜嗨av一区二区三区| 久久久久国色av免费看影院| 欧美色成人综合|