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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? geo_set.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
字號:
/********************************************************************** * *  geo_set.c  -- Public routines for GEOTIFF GeoKey access. * *    Written By: Niles D. Ritter. * *  copyright (c) 1995   Niles D. Ritter * *  Permission granted to use this software, so long as this copyright *  notice accompanies any products derived therefrom. * * $Log: geo_set.c,v $ * Revision 1.11  2004/04/27 21:32:33  warmerda * reformat for clarity * * Revision 1.10  2003/07/08 17:31:30  warmerda * cleanup various warnings * * Revision 1.9  2003/01/15 03:37:19  warmerda * avoid warning * * Revision 1.8  2002/09/27 13:05:33  warmerda * allow dynamic set/delete of ASCII tags. ASCIIPARAMS now kept split * * Revision 1.7  2001/05/02 16:48:22  warmerda * fixed a couple bugs in delete code * * Revision 1.6  2001/05/02 13:54:34  warmerda * updated geo_set.c to support deleting tags * * Revision 1.5  1999/05/04 03:09:33  warmerda * avoid warnings * * Revision 1.4  1999/05/03 17:50:31  warmerda * avoid warnings on IRIX * * Revision 1.3  1999/04/28 19:59:38  warmerda * added some doxygen style documentation * * Revision 1.2  1999/03/11 17:39:38  geotiff * Added fix for case where a key is being overwritten. * **********************************************************************/#include "geotiff.h"   /* public interface        */#include "geo_tiffp.h" /* external TIFF interface */#include "geo_keyp.h"  /* private interface       */#include <assert.h>/**This function writes a geokey_t value to a GeoTIFF file.@param gtif The geotiff information handle from GTIFNew().@param keyID The geokey_t name (such as ProjectedCSTypeGeoKey).This must come from the list of legal geokey_t values(an enumeration) listed below.@param val The <b>val</b> argument is a pointer to thevariable into which the value should be read.  The type of the variablevaries depending on the geokey_t given.  While there is no ready mappingof geokey_t values onto types, in general code values are of type <i>short</i>,citations are strings, and everything else is of type <i>double</i>.  Notethat pointer's to <i>int</i> should never be passed to GTIFKeyGet() forinteger values as they will be shorts, and the int's may not be properlyinitialized (and will be grossly wrong on MSB systems).@param index Indicates how far into the list of valuesfor this geokey to offset. Should normally be zero.@param count Indicates how many valuesto read.  At this time all keys except for strings have only one value,so <b>index</b> should be zero, and <b>count</b> should be one.<p>The <b>key</b> indicates the key name to be written to thefile and should from the geokey_t enumeration (eg. <tt>ProjectedCSTypeGeoKey</tt>).  The full list of possible geokey_tvalues can be found in geokeys.inc, or in the online documentation forGTIFKeyGet().<p>The <b>type</b> should be one of TYPE_SHORT, TYPE_ASCII, or TYPE_DOUBLE andwill indicate the type of value being passed at the end of the argumentlist (the key value).  The <b>count</b> should be one except for stringswhen it should be the length of the string (or zero to for this to becomputed internally).  As a special case a <b>count</b> of -1 can beused to request an existing key be deleted, in which no value is passed.<p>The actual value is passed at the end of the argument list, and should bea short, a double, or a char * value.  Note that short and double valuesare passed as is, not as pointers.<p>Note that key values aren't actually flushed to the file untilGTIFWriteKeys() is called.  Till then the new values are just kept with the GTIF structure.<p><b>Example:</b><p><pre>    GTIFKeySet(gtif, GTRasterTypeGeoKey, TYPE_SHORT, 1,                RasterPixelIsArea);    GTIFKeySet(gtif, GTCitationGeoKey, TYPE_ASCII, 0,                "UTM 11 North / NAD27" );</pre> */int GTIFKeySet(GTIF *gtif, geokey_t keyID, tagtype_t type, int count,...){    va_list ap;    int index = gtif->gt_keyindex[ keyID ];    int newvalues = 0;    GeoKey *key;    char *data = NULL;    char *val = NULL;    pinfo_t sval;    double dval;    va_start(ap, count);    /* pass singleton keys by value */    if (count>1 && type!=TYPE_ASCII)     {        val = va_arg(ap, char*);    }    else if( count == -1 )    {        /* delete the indicated tag */        va_end(ap);        if( index < 1 )            return 0;        if (gtif->gt_keys[index].gk_type == TYPE_ASCII)        {            _GTIFFree (gtif->gt_keys[index].gk_data);        }        while( index < gtif->gt_num_keys )        {            _GTIFmemcpy( gtif->gt_keys + index,                          gtif->gt_keys + index + 1,                          sizeof(GeoKey) );            gtif->gt_keyindex[gtif->gt_keys[index].gk_key] = index;            index++;        }        gtif->gt_num_keys--;        gtif->gt_nshorts -= sizeof(KeyEntry)/sizeof(pinfo_t);        gtif->gt_keyindex[keyID] = 0;        gtif->gt_flags |= FLAG_FILE_MODIFIED;        return 1;    }    else switch (type)    {      case TYPE_SHORT:  sval=(pinfo_t) va_arg(ap, int); val=(char *)&sval;     break;      case TYPE_DOUBLE: dval=va_arg(ap, dblparam_t); val=(char *)&dval;  break;      case TYPE_ASCII:         val=va_arg(ap, char*);        count = strlen(val) + 1; /* force = string length */        break;      default:        assert( FALSE );        break;    }    va_end(ap);        /* We assume here that there are no multi-valued SHORTS ! */    if (index)    {        /* Key already exists */        key = gtif->gt_keys+index;        if (type!=key->gk_type || count > key->gk_count)        {            /* need to reset data pointer */            key->gk_type = type;            key->gk_count = count;            key->gk_size = _gtiff_size[ type ];            newvalues = 1;        }    }    else    {        /* We need to create the key */        if (gtif->gt_num_keys == MAX_KEYS) return 0;        key = gtif->gt_keys + ++gtif->gt_num_keys;        index = gtif->gt_num_keys;        gtif->gt_keyindex[ keyID ] = index;        key->gk_key = keyID;        key->gk_type = type;        key->gk_count = count;        key->gk_size = _gtiff_size[ type ];        if (gtif->gt_keymin > keyID)  gtif->gt_keymin=keyID;        if (gtif->gt_keymax < keyID)  gtif->gt_keymax=keyID;        newvalues = 1;    }    if (newvalues)    {        switch (type)        {          case TYPE_SHORT:              if (count > 1) return 0;            data = (char *)&key->gk_data; /* store value *in* data */            break;          case TYPE_DOUBLE:            key->gk_data = (char *)(gtif->gt_double + gtif->gt_ndoubles);            data = key->gk_data;            gtif->gt_ndoubles += count;            break;          case TYPE_ASCII:            break;          default:            va_end(ap);            return 0;        }        gtif->gt_nshorts += sizeof(KeyEntry)/sizeof(pinfo_t);    }    /* this fixes a bug where if a request is made to write a duplicate       key, we must initialize the data to a valid value.       Bryan Wells (bryan@athena.bangor.autometric.com) */            else /* no new values, but still have something to write */    {        switch (type)        {          case TYPE_SHORT:              if (count > 1) return 0;            data = (char *)&key->gk_data; /* store value *in* data */            break;          case TYPE_DOUBLE:            data = key->gk_data;            break;          case TYPE_ASCII:            break;          default:            return 0;        }    }            switch (type)    {      case TYPE_ASCII:        /* throw away existing data and allocate room for new data */        if (key->gk_data != 0)        {            _GTIFFree(key->gk_data);        }        key->gk_data = (char *)_GTIFcalloc(count);        key->gk_count = count;        data = key->gk_data;        break;      default:        break;    }    _GTIFmemcpy(data, val, count*key->gk_size);        gtif->gt_flags |= FLAG_FILE_MODIFIED;    return 1;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆91在线看| 日韩精品自拍偷拍| 粉嫩av一区二区三区在线播放| 日韩激情视频网站| 亚洲第一av色| 日本中文字幕一区| 免费看欧美女人艹b| 日韩精品国产欧美| 免费欧美日韩国产三级电影| 久久99热99| 国产乱一区二区| 成人av网站在线观看| 99精品欧美一区二区三区小说 | 亚洲欧洲精品成人久久奇米网| 日本一区二区三区四区| 中文字幕一区二区三区不卡在线 | 国产一区二区三区久久悠悠色av| 国产精品一区在线观看你懂的| 国产98色在线|日韩| 91女神在线视频| 欧美性大战久久久久久久蜜臀| 51精品秘密在线观看| 欧美tk丨vk视频| 欧美激情一二三区| 一区二区在线看| 日韩av电影天堂| 国产一区亚洲一区| 99久久久久久| 欧美日本一道本| 久久综合资源网| 亚洲欧洲精品天堂一级| 亚洲国产成人高清精品| 久久成人久久爱| heyzo一本久久综合| 欧美性欧美巨大黑白大战| 日韩一级大片在线| 国产精品久久久久久户外露出| 亚洲小说欧美激情另类| 日本色综合中文字幕| 懂色av一区二区三区蜜臀| 在线观看亚洲a| 久久嫩草精品久久久精品| 亚洲情趣在线观看| 免费国产亚洲视频| 95精品视频在线| 欧美一区二区三区精品| 国产精品久久久久三级| 人人狠狠综合久久亚洲| av激情综合网| 精品国产精品网麻豆系列| 亚洲天堂av老司机| 蜜臀av性久久久久av蜜臀妖精| 国产成人av电影在线播放| 欧美日韩国产精品成人| 国产精品丝袜久久久久久app| 亚洲电影中文字幕在线观看| 国产成人精品免费视频网站| 欧美日韩精品高清| 国产精品高潮呻吟| 蜜臀精品一区二区三区在线观看| 99r国产精品| 久久免费午夜影院| 男女男精品视频| 日本精品一级二级| 国产精品美女视频| 激情文学综合网| 欧美浪妇xxxx高跟鞋交| 亚洲色图在线播放| 国产99一区视频免费| 日韩欧美国产精品| 视频一区视频二区中文字幕| 97成人超碰视| 欧美国产日韩一二三区| 国产在线播精品第三| 欧美一级黄色录像| 亚洲午夜日本在线观看| 99re这里都是精品| 国产精品视频线看| 国产美女视频91| 欧美电影免费观看高清完整版在| 亚洲高清中文字幕| 91浏览器入口在线观看| 欧美国产1区2区| 国产成人亚洲精品青草天美| 日韩精品综合一本久道在线视频| 天堂成人国产精品一区| 欧美亚洲动漫制服丝袜| 亚洲人123区| 99久久精品久久久久久清纯| 欧美极品aⅴ影院| 国产在线不卡一区| 久久久综合九色合综国产精品| 日韩av电影天堂| 91精品国产综合久久香蕉的特点| 夜夜精品视频一区二区| 91论坛在线播放| 亚洲黄一区二区三区| 91在线国内视频| 亚洲精品免费电影| 色婷婷久久一区二区三区麻豆| 综合色中文字幕| 色综合一个色综合| 一区二区三区久久| 欧美中文字幕不卡| 亚洲不卡一区二区三区| 欧美日韩高清一区二区不卡| 亚洲丰满少妇videoshd| 欧美丰满一区二区免费视频| 天堂久久久久va久久久久| 欧美老年两性高潮| 久久国产免费看| 久久久国际精品| www.综合网.com| 亚洲日本电影在线| 欧美日韩综合色| 日本不卡一区二区三区| 精品三级在线观看| 国产·精品毛片| 亚洲欧洲制服丝袜| 欧美高清你懂得| 狠狠色丁香九九婷婷综合五月| 国产日韩亚洲欧美综合| 一本大道久久精品懂色aⅴ| 亚洲国产一区二区a毛片| 欧美精品色综合| 国产一区在线观看麻豆| 国产精品成人免费| 欧美人xxxx| 国产高清久久久久| 亚洲精品日韩一| 日韩一二三区不卡| 成人午夜免费av| 亚洲国产欧美在线| 欧美大片在线观看一区二区| 成人av综合一区| 婷婷国产v国产偷v亚洲高清| 久久一留热品黄| 91福利国产精品| 狠狠色丁香婷婷综合久久片| 综合久久久久久| 欧美一级片在线观看| 国产suv一区二区三区88区| 一区二区国产盗摄色噜噜| 日韩精品一区二区三区蜜臀| eeuss影院一区二区三区| 天天av天天翘天天综合网| 久久久国产精华| 欧美日韩夫妻久久| 国产成人精品综合在线观看| 亚洲一二三区在线观看| 久久精品一级爱片| 欧美日韩一区三区| 国产91清纯白嫩初高中在线观看| 久草在线在线精品观看| 国产精品毛片久久久久久久| 91精品国产综合久久久久久久久久| 国产mv日韩mv欧美| 奇米在线7777在线精品| 最新国产成人在线观看| 精品美女一区二区| 欧美三级韩国三级日本一级| 国产91清纯白嫩初高中在线观看| 午夜精品在线看| 亚洲三级视频在线观看| 久久免费看少妇高潮| 欧美精品在线观看一区二区| 不卡一区二区三区四区| 精品一区二区三区蜜桃| 午夜婷婷国产麻豆精品| 亚洲视频狠狠干| 亚洲男人都懂的| 久久精品人人做人人爽人人| 欧美卡1卡2卡| 91久久精品一区二区二区| 国产suv精品一区二区883| 另类中文字幕网| 五月婷婷久久综合| 有码一区二区三区| 一区免费观看视频| 久久综合丝袜日本网| 欧美一卡二卡在线| 欧美日韩综合不卡| 91久久香蕉国产日韩欧美9色| 成人免费毛片片v| 国产麻豆精品theporn| 久久精品99国产国产精| 日韩高清中文字幕一区| 亚洲高清视频的网址| 亚洲精品国产成人久久av盗摄| 国产精品久久久久影院老司| 国产欧美精品一区二区三区四区| 久久亚洲一区二区三区明星换脸| 日韩三区在线观看| 欧美一级理论性理论a| 欧美一卡在线观看| 日韩一区二区三区视频| 91精品国产综合久久婷婷香蕉| 777久久久精品| 91精品国产乱| 日韩一级成人av|