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

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

?? jpginfo.cpp

?? DOS命令行程序, 查找指定目錄及子目錄下的所有文件, 得到JPG文件的長與寬的像素值的程序.
?? CPP
字號:
// 查找所有的JPG文件并生成 JPG 文件長寬信息

#include "stdafx.h"
//#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>

#define MAC_FILENAMELENOPATH 1024

long g_file_count = 0;

FILE * fp_info;  // JPG信息文件
//#define MAX_JPG_HEADER 96000
#define MAX_JPG_HEADER 1000
unsigned char *g_jpg_header;

#define  TOSHORT(p) ((*((unsigned char *)(p))<<8)|(*((unsigned char *)(p)+1)))

int get_jpg_info(char *fn, unsigned short * width, unsigned short * height)
{
    FILE * fp_jpg;
    int i, readed, len;
    unsigned char *pos;

    fp_jpg = fopen(fn, "rb");
    if (NULL == fp_jpg)
    {
        printf("\n can not open file %s", fn);
        return 1;
    }
    readed = fread(g_jpg_header, 1, MAX_JPG_HEADER, fp_jpg);
    fclose(fp_jpg);
    if (readed < MAX_JPG_HEADER)
    {
        *height = 0;
        *width = 0;
        return 1;
    }
    
    if (0 != memcmp(g_jpg_header + 6, "JFIF", 4))
    {
        printf("\n %s seems not JPG file. not found JFIF in g_jpg_header",fn);
        return 3;
    }

    for (i=2;i<readed;)
    {
        pos = g_jpg_header + i;
        if (0xff != *pos)
        {
            //printf(" \n seems error %d len=%d\n", i, len);
            break;
        }
        if (0xc0 == *(pos+1))
        {
            pos += 5;
            //memcpy(height, pos, 2);
            *height = TOSHORT(pos);
            pos += 2;
            *width = TOSHORT(pos);
        }
        pos += 2;
        len = TOSHORT(pos);
        i += (2 + len);
    }
    return 0;
}

/*得到文件的長度*/
unsigned long get_file_len(char * fn)
{
    FILE * fp;
    unsigned long len;

    fp = fopen(fn, "r");
    if (NULL == fp)
    {
        printf("\n can not open file:%s", fn);
        return 0;
    }
    fseek(fp, 0, SEEK_END);
    len = ftell(fp);
    fclose(fp);
    return len;
}

// 做字符替換
void replace_str2(char * ori, char *dst, char be_replaced, char to_replace)
{
    char * pos, *pos_dst;
    char ch;
    
    pos_dst = dst;
    for (pos = ori;*pos!=0;pos++)
    {
        ch = *pos;
        if (ch == be_replaced)
        {
            *pos_dst++ = to_replace;
        }
        else
        {
            *pos_dst++ = ch;
        }
    }
    *pos_dst = 0;
}

// 做字符替換
void replace_str(char * ori, char be_replaced, char to_replace)
{
    char * pos;
    char ch;
    
    for (pos = ori;*pos!=0;pos++)
    {
        ch = *pos;
        if (ch == be_replaced)
        {
            *pos = to_replace;
        }
    }
}

#define MAX_LINE 10240
void file_process(char *dir, char *fn, WIN32_FIND_DATA *fd)
{
    unsigned short width, height;
    char fullfn[MAC_FILENAMELENOPATH];

    CTime tfile(fd->ftLastWriteTime);
    CTime basetime(2007, 9, 19, 22, 15, 0 ); // 10:15PM March 19, 1999

    // has already processed, pass
    if (tfile > basetime)
    {
        //fprintf(fp_info, "\n\nFile name = %s\nImage dimensions = %d x %d  Pixels",
        //    fn, 0, 0);
        return;
    }

    if ((fd->nFileSizeHigh = 0) && (fd->nFileSizeLow < MAX_JPG_HEADER))
    {
        fprintf(fp_info, "\n\nFile name = %s\nImage dimensions = %d x %d  Pixels",
            fn, 0, 0);
        return;
    }

    strcpy(fullfn, dir);
    strcat(fullfn, fn);

    width = 0;
    height = 0;
    get_jpg_info(fullfn, &width, &height);
    if (width > 1)
    {
        fprintf(fp_info, "\n\nFile name = %s\nImage dimensions = %d x %d  Pixels",
            fn, width, height);
    }
    else
    {
        fprintf(fp_info, "\n\nFile name = %s\nImage dimensions = %d x %d  Pixels",
            fn, 0, 0);
    }
    g_file_count++;
}

void file_process2(char *fn, WIN32_FIND_DATA *fd)
{
#define  MAX_SRC_FILE_LEN  (256000UL) // maximun source file len = 250k
    FILETIME local;
    SYSTEMTIME systm;

#if 0
    if (fd->nFileSizeHigh > 0)
    {
        return;
    }
    else if (fd->nFileSizeLow > MAX_SRC_FILE_LEN)
    {
        return;
    }

    // file modify time must be late than pre process time.
    if (fd->ftLastWriteTime.dwHighDateTime < g_pre_process.dwHighDateTime)
    {
        return;
    }
    else if (fd->ftLastWriteTime.dwHighDateTime == g_pre_process.dwHighDateTime)
    {
        if (fd->ftLastWriteTime.dwLowDateTime < g_pre_process.dwLowDateTime)
        {
            return;
        }
    }
#endif /*#if 0, Comment temporary */
    
    FileTimeToLocalFileTime(&(fd->ftLastWriteTime), &local);
    FileTimeToSystemTime(&local, &systm);
    printf("\n%s\t%04d-%02d-%02d %02d:%02d:%02d", fn,
        systm.wYear     ,
        systm.wMonth    ,
        systm.wDay      ,
        systm.wHour     ,
        systm.wMinute   ,
              systm.wSecond);
    g_file_count++;
}

/*文件名通配算法, 第一個參數為詳細文件名, 第二個參數為通配符*/
BOOL FileMatch( LPCTSTR lpszFileName, LPCTSTR lpszMatch )
{
    if ( '\0' == *lpszFileName && '\0' == *lpszMatch )
    {
        // 如果都達到了字符串尾部,則說明匹配成功
        return TRUE;
    }
    if ( '\0' == *lpszMatch )
    {
        // 如果通配符字符串達到了尾部,則說明不匹配
        return FALSE;
    }
    if ( '\0' == *lpszFileName )
    {
        if ( '*' == *lpszMatch )
        {
            ++lpszMatch;
            return FileMatch( lpszFileName, lpszMatch );
        }
        else
        {
            return FALSE;
        }
    }
    if ( '?' == *lpszMatch )
    {                   
        ++lpszMatch;
        ++lpszFileName;
        return FileMatch( lpszFileName, lpszMatch );
    }
    if( '*' == *lpszMatch )
    {
        // 嘗試匹配0個字符
        ++lpszMatch;
        if ( FileMatch( lpszFileName, lpszMatch ) )
        {
            return TRUE;
        }
        else
        {
            --lpszMatch;
        }
        // 嘗試匹配1個字符
        ++lpszMatch;
        ++lpszFileName;
        if ( FileMatch( lpszFileName, lpszMatch ) )
        {
            return TRUE;
        }
        else
        {
            --lpszMatch;
            --lpszFileName;
        }
        // 嘗試匹配多個字符
        ++lpszFileName;
        return FileMatch( lpszFileName, lpszMatch );
    }
    // 匹配普通字符
    if ( *lpszMatch != *lpszFileName )
    {
        return FALSE;
    }
    ++lpszMatch;
    ++lpszFileName;
    return FileMatch( lpszFileName, lpszMatch );
} 

/* rootDir : 搜索的起始目錄, 帶最后的\\, file_spec : 通配符*/
void FindFileInDir(char* rootDir, char * file_spec)
{
    char fname[MAC_FILENAMELENOPATH];
    WIN32_FIND_DATA fd;
    HANDLE hSearch;
    char filePathName[MAC_FILENAMELENOPATH];
    char tmpPath[MAC_FILENAMELENOPATH];
    BOOL bSearchFinished = FALSE;

    ZeroMemory(fname, MAC_FILENAMELENOPATH);
    ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));
    ZeroMemory(filePathName, MAC_FILENAMELENOPATH);
    ZeroMemory(tmpPath, MAC_FILENAMELENOPATH);

    strcpy(filePathName, rootDir);
    strcat(filePathName, "*.*");
    
    hSearch = FindFirstFile(filePathName, &fd);
    
    //Is directory
    if (strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
    {
        if( fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {
            strcpy(tmpPath, rootDir);
            strcat(tmpPath, fd.cFileName);
            strcat(tmpPath, "\\");
            FindFileInDir(tmpPath, file_spec);
        }
        else
        {
            if (FileMatch(fd.cFileName, file_spec))
            {
                //sprintf(fname, "%s%s", rootDir, fd.cFileName);
                file_process(rootDir, fd.cFileName, &fd);
            }
        }
    }

    while( !bSearchFinished )
    {
        if( FindNextFile(hSearch, &fd) )
        {
            if (strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, ".."))
            {
                if( fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                {
                    strcpy(tmpPath, rootDir);
                    strcat(tmpPath, fd.cFileName);
                    strcat(tmpPath, "\\");
                    FindFileInDir(tmpPath, file_spec);
                }
                else
                {

                    if (FileMatch(fd.cFileName, file_spec))
                    {
                        //sprintf(fname, "%s%s", rootDir, fd.cFileName);
                        file_process(rootDir, fd.cFileName, &fd);
                    }
                }
            }
        }
        else
        {
            bSearchFinished = TRUE; //Terminate Search
        }
    }
    
    FindClose(hSearch);
}

int main(int argc, char **argv)
{
    char dir[1024];

    //get_last_dir("D:\\photo.search@&yearsearch=2000&nr_of_rows=52772&first_this_page=29790&page_limit=15&sort_order=photo_id+DESC&nr_pages=3519.1.html", dir);

    if (argc < 3)
    {
        printf("\n usage : jpginfo dir file_name info_file_name");
        printf("\n    ex : jpginfo c:\\ *.jpg _jpginfo.txt");
        return 3;
    }

    strcpy(dir, argv[1]);
    if ('\\' != *(dir+strlen(dir)-1))
    {
        strcat(dir, "\\");
    }


    g_jpg_header = (unsigned char *)malloc(MAX_JPG_HEADER);
    if (NULL == g_jpg_header)
    {
        printf(" \ncan not alloc memory=%d\n", MAX_JPG_HEADER);
        return 5;
    }
    fp_info = fopen(argv[3], "w");
    if (NULL == fp_info)
    {
        printf("\n can not open %s for write" ,argv[3]);
        return 4;
    }
    
    // process file by file
    FindFileInDir(dir, argv[2]);


    fclose(fp_info);
    free(g_jpg_header);
    printf("\n\n total file count = %ld", g_file_count);

    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩免费高清一区色橹橹| 国产免费观看久久| 久久免费精品国产久精品久久久久| 日韩中文字幕一区二区三区| 国产精品自产自拍| 精品婷婷伊人一区三区三| 欧美国产精品专区| 精品一区二区三区欧美| 在线观看成人小视频| 欧美国产精品中文字幕| 国模一区二区三区白浆| 欧美老人xxxx18| 一区二区三区四区在线免费观看| 国产成人精品亚洲777人妖 | 日韩一区二区电影在线| 亚洲精品五月天| 成人高清视频免费观看| 欧美精品一区视频| 天天色天天爱天天射综合| 色伊人久久综合中文字幕| 综合亚洲深深色噜噜狠狠网站| 精品在线视频一区| 精品少妇一区二区三区视频免付费| 亚洲一区二区四区蜜桃| 色先锋资源久久综合| 亚洲免费观看高清完整版在线观看| 成人av网站大全| 中文字幕欧美区| 粉嫩av一区二区三区在线播放| 久久综合色鬼综合色| 激情图片小说一区| 精品国产免费视频| 国产在线不卡一区| 亚洲国产精品成人综合色在线婷婷| 黑人巨大精品欧美一区| 久久久99精品免费观看不卡| 国产精品一区二区无线| 中文字幕第一区综合| www.亚洲免费av| 一区二区三区在线免费观看| 色视频欧美一区二区三区| 亚洲图片一区二区| 欧美精选在线播放| 色狠狠一区二区三区香蕉| 亚洲欧美国产77777| 在线观看av一区二区| 爽爽淫人综合网网站| 日韩一区二区三区视频在线观看| 精品中文av资源站在线观看| 中文一区二区完整视频在线观看| 从欧美一区二区三区| 亚洲欧美一区二区久久| 欧美丰满美乳xxx高潮www| 麻豆国产欧美一区二区三区| 国产欧美精品一区二区色综合朱莉| www.亚洲色图.com| 午夜精品福利在线| 久久久久久久久久看片| 91老师片黄在线观看| 日韩精品一卡二卡三卡四卡无卡| 精品久久久久99| 成人永久免费视频| 亚洲午夜成aⅴ人片| 久久男人中文字幕资源站| 91色乱码一区二区三区| 蜜桃视频在线一区| 日韩美女啊v在线免费观看| 欧美午夜精品一区二区三区 | 久久这里只精品最新地址| av在线这里只有精品| 三级精品在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 在线观看日韩电影| 国产精品一品视频| 日韩精品久久久久久| 国产精品久久久久久久久免费樱桃| 欧美日韩不卡一区二区| 国产99久久久久久免费看农村| 亚洲影院在线观看| 久久九九久精品国产免费直播| 欧美午夜视频网站| 成年人网站91| 国产精品原创巨作av| 日一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 精品福利二区三区| 国产亚洲精品超碰| 日韩一级完整毛片| 欧美在线啊v一区| 成人小视频免费观看| 麻豆久久一区二区| 亚洲成av人**亚洲成av**| 亚洲欧洲www| 久久精品亚洲一区二区三区浴池| 欧美日韩视频不卡| 成人永久aaa| 国产精品18久久久久久久网站| 五月婷婷欧美视频| 亚洲一区中文日韩| 日韩理论片在线| 亚洲欧美在线观看| 国产精品久久久久影院老司 | 一区二区三区在线观看国产| 久久精品一区八戒影视| 日韩欧美第一区| 7777精品伊人久久久大香线蕉| 欧美性感一类影片在线播放| 91免费看`日韩一区二区| 国产福利一区二区| 国产精品一二三在| 激情亚洲综合在线| 精品影视av免费| 久久99国产精品免费网站| 久久国产欧美日韩精品| 蜜桃在线一区二区三区| 久久se精品一区二区| 精品无人区卡一卡二卡三乱码免费卡| 免费观看一级特黄欧美大片| 久久精品国产999大香线蕉| 久久99国产精品久久99果冻传媒| 美日韩黄色大片| 韩国欧美一区二区| 国产白丝网站精品污在线入口| 丁香六月综合激情| 成人97人人超碰人人99| 在线免费精品视频| 欧美日韩精品一二三区| 日韩欧美国产电影| 国产日韩欧美高清在线| 国产精品国产三级国产aⅴ中文| 中文字幕亚洲一区二区av在线| 中文字幕中文字幕一区二区| 亚洲激情中文1区| 天天av天天翘天天综合网| 麻豆一区二区99久久久久| 国产精品一区二区久久精品爱涩| 成人黄色综合网站| 日本道在线观看一区二区| 欧美精品第1页| 欧美极品aⅴ影院| 亚洲一区二区三区小说| 免费成人在线播放| 成人午夜伦理影院| 欧美日韩国产综合草草| 久久久久久久久一| 一区二区三区在线播| 国模娜娜一区二区三区| 成人免费视频app| 欧美精品亚洲二区| 国产精品天美传媒| 水蜜桃久久夜色精品一区的特点 | 国产欧美久久久精品影院| 亚洲精品一二三区| 激情六月婷婷综合| 欧美亚洲免费在线一区| 午夜视频在线观看一区二区 | 国产欧美一区二区三区网站| 亚洲国产成人精品视频| 国产激情视频一区二区在线观看| 色综合久久久久综合体桃花网| 91精品国产综合久久久蜜臀图片 | 成人免费黄色大片| 精品视频一区二区不卡| 久久精品欧美一区二区三区麻豆 | 91精品国产手机| 亚洲人成7777| 国产一区二区在线观看免费| 欧美日韩电影在线| 亚洲婷婷综合色高清在线| 久久国内精品自在自线400部| 欧洲亚洲精品在线| 国产精品亲子伦对白| 精品中文av资源站在线观看| 欧美午夜精品一区| 亚洲图片你懂的| 丁香六月久久综合狠狠色| 欧美一区二区三区视频免费 | 亚洲欧美另类小说视频| 国产精品资源在线| 精品少妇一区二区三区在线视频| 亚洲成a天堂v人片| 色婷婷av一区二区三区软件 | 亚洲成人av在线电影| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美综合一区二区| 亚洲欧美二区三区| 99久久久无码国产精品| 国产亲近乱来精品视频| 国产在线精品国自产拍免费| 91麻豆精品久久久久蜜臀| 亚洲一区免费在线观看| 在线视频欧美精品| 亚洲精品免费在线| 色婷婷激情一区二区三区| 亚洲人成精品久久久久久 | 国产精品正在播放| 久久久久高清精品| 国产一区二区影院| 国产欧美日韩久久| 99视频一区二区三区|