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

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

?? imgmem.c

?? 大師寫的二代小波經典之作
?? C
字號:
/* *  -*- Mode ANSI C -*- *  $Id: imgmem.c,v 1.6 1996/09/17 16:10:50 fernande Exp $ *  $Source: /sgi.acct/sweldens/cvs/liftpack/Util/imgmem.c,v $ *  Author: Gabriel Fernandez, Senthil Periaswamy * *  Image Allocation routines. *//* do not edit anyhting above this line *//* FLWT header files */#include <imgmem.h>#include <flwterr.h>#include <memchk.h>/**********************************************************************************  The high level routines are:                                               ****                                                                             ****    Image IMG_InitMem ( long width, long height, int colorPlanes, int bpp ); ****    void  IMG_FreeMem ( Image *img );                                        ****                                                                             ****  The lower level routines are:                                              ****                                                                             ****    Volume MEM_Init3DC( int depth, long width, long height );                ****    Volume MEM_Init3D( int depth, long width, long height );                 ****    Matrix MEM_Init2D( long width, long height );                            ****    Vector MEM_Init1D( long width );                                         ****    void   MEM_Free2D( Matrix buff );                                        ****    void   MEM_Free1D( Vector  buff );                                       ****                                                                             ****  and the lowest level routine are malloc and free.                          ****                                                                             ***********************************************************************************//* code *//* * IMG_InitMem function: allocates memory for an image, guaranteeing *                       continuity in the bands. */booleanIMG_InitMem ( Image *img, const long width, const long height,                          const int colorPlanes, const int bpp ){    int i;    if ( colorPlanes > MAX_COLOR_PLANES || colorPlanes <= 0 ) {        Error ("IMG_InitMem", INVALID_VALUE_INT, ABORT, "color planes", 	               1, MAX_COLOR_PLANES);    }    if ( width == 0 || height == 0 ) {        Error ("IMG_Initmem", INVALID_RELATIONAL_INT, ABORT,               "Dimensions", ">", 0);        /* NOTREACHED */    }    /* Everything should be fine now */    img->width       = (int)width;    img->height      = (int)height;    img->colorPlanes = colorPlanes;    img->bpp         = bpp;    for ( i=0; i<colorPlanes ; i++ ) {        img->band[i] = MEM_Init2D ( width, height );        if (!img->band[i]) {            Error ("IMG_InitMem", MEMORY_MATRIX, RETURN);            return FALSE;        }    }    return TRUE;}/* * IMG_FreeMem function: given the image allocated in IMG_InitMem, the *                       function deallocates the occupied memory. */voidIMG_FreeMem ( Image img ){    int i;    /* Free each band */    for ( i=0 ; i<img.colorPlanes ; i++ ) {        if ( img.band[i] ) {            MEM_Free2D ( (Matrix)img.band[i] );            img.band[i] = (Matrix)NULL;        }        if ( img.comment ) {            free ( (char *)img.comment );            img.comment = NULL;        }        if ( img.levels ) {            free ( (int *)img.levels );            img.levels = NULL;        }    }}/* * MEM_Init3DC function: initialize memory for a contiguous 3D volume. */VolumeMEM_Init3DC ( int depth, long width, long height ){    Volume buff;    Vector ptrData;    long y, z;    /* Allocate the whole 3D image */    ptrData = MEM_Init1D( (long)(depth*width*height) );    if ( ptrData == NULL ) {        return NULL;    }    /* Allocate memory for the array of double pointers */    buff = (Volume)malloc( (size_t)(depth*sizeof(Matrix)) );    if ( buff == NULL ) {        return NULL;    }    /* Assign pointers of the matrices */    for( z=0 ; z<depth ; z++ ) {        buff[z] = (Matrix)malloc( (size_t)(height*sizeof(Vector)) );        if ( buff[z] == NULL ) {            return NULL;        }        for( y=0 ; y<height ; y++, ptrData += width ) {            buff[z][y] = ptrData;        }    }    return buff;}/* * MEM_Free3DC function: frees a contiguos 3D volume. */voidMEM_Free3DC ( Volume buff ){    if ( buff == NULL )        return;    MEM_Free1D ( buff[0][0] );    free ( (Matrix)buff[0] );    free ( (Volume)buff );}/* * MEM_Init3D function: initialize memory for an array of matrices. */Matrix *MEM_Init3D ( int depth, long width, long height ){    Matrix *buff;    long i;    /* Allocate memory for a row of pointers */    buff = (Matrix *)malloc( (size_t)(depth*sizeof(Matrix)) );    if ( !buff )        return NULL;    /* Allocate each matrix with Init2D */    for ( i=0 ; i<(long)depth ; i++ ) {	buff[i] = MEM_Init2D( (long)width, (long)height );	if ( !buff[i] )	    return NULL;    }    return buff;}/* * MEM_Free3D function: frees an array of matrices. */voidMEM_Free3D ( Matrix *buff, int depth ){    int i;    if ( buff == NULL )        return;    for ( i=0 ; i<depth ; i++ ) {        MEM_Free2D ( buff[i] );    }    free ( (Matrix *)buff );}/* * MEM_Init2D function: initialize memory for a 2D vector. */MatrixMEM_Init2D ( long width, long height ){    Matrix buff;    long i, length = width*height;    /* First allocate a row of pointers */    buff = (Matrix)malloc( (size_t)(height*sizeof(Vector)) );    if ( buff == NULL ) {        return NULL;    }    /* Allocate entire 2D vector */    buff[0] = MEM_Init1D ( length );    if ( buff[0] == NULL ) {        return NULL;    }    /* Set the row-pointers to point correctly into the 2D vector */    for ( i=1 ; i<height ; ++i ) {        buff[i] = buff[i-1] + width;    }    return buff;}/* * MEM_Free2D function: frees a 2D vector. */voidMEM_Free2D ( Matrix buff ){    if ( buff == NULL )        return;    MEM_Free1D ( buff[0] );    free ( (Matrix)buff );}/* * MEM_InitVecs function: initialize memory for an array of vectors. */Vector *MEM_InitVecs ( int depth, long width ){    Vector *buff;    long i;    /* Allocate memory for a row of pointers */    buff = (Vector *)malloc( (size_t)(depth*sizeof(Vector)) );    if ( !buff )        return NULL;    /* Allocate each vector with MEM_Init1D */    for ( i=0 ; i<(long)depth ; i++ ) {        buff[i] = MEM_Init1D( (long)width );	    if ( !buff[i] )	        return NULL;    }    return buff;}/* * MEM_FreeVecs function: frees an array of vectors. */voidMEM_FreeVecs ( Vector *buff, int depth ){    int i;    if ( buff == NULL )        return;    for ( i=0 ; i<depth ; i++ ) {        MEM_Free1D( buff[i] );    }    free ( (Vector *)buff );}/* * MEM_Init1D function: initializes a 1D vector. */VectorMEM_Init1D ( long n ){    return (Vector)malloc( (size_t)(n*sizeof(Flt)) );}/* * MEM_Free1D function: frees a 1D vector. */voidMEM_Free1D ( Vector buff ){    free ( (Vector)buff );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
狠狠色狠狠色综合系列| 免费在线一区观看| 欧美高清在线视频| 精品国产不卡一区二区三区| 欧美久久一二区| 欧美人牲a欧美精品| 欧美精品一卡两卡| 欧美一卡二卡三卡| www国产精品av| 中文字幕一区二区三区乱码在线 | 美国欧美日韩国产在线播放| 日本aⅴ亚洲精品中文乱码| 免费一级欧美片在线观看| 麻豆91在线看| 丁香五精品蜜臀久久久久99网站| 国产1区2区3区精品美女| av动漫一区二区| 欧美图区在线视频| 欧美成人r级一区二区三区| 欧美激情一区二区三区全黄| 亚洲色图视频免费播放| 日日夜夜免费精品视频| 国产一区久久久| 色综合久久中文综合久久97 | 免费成人av在线| 国产精品亚洲午夜一区二区三区| 成人免费高清在线| 欧美日韩在线免费视频| 欧美成人vr18sexvr| 最新不卡av在线| 免费成人在线播放| 99精品视频一区二区| 欧美一区二区国产| 成人免费一区二区三区视频 | 在线免费观看成人短视频| 日韩精品一区二区在线| 亚洲精选在线视频| 国产在线日韩欧美| 欧美无乱码久久久免费午夜一区| 久久久蜜臀国产一区二区| 一区av在线播放| 国产精品99久久久久| 欧美绝品在线观看成人午夜影视| 国产天堂亚洲国产碰碰| 日韩福利视频导航| 色国产精品一区在线观看| 精品处破学生在线二十三| 一个色妞综合视频在线观看| 成人一区二区三区| 亚洲天堂精品在线观看| 九九精品一区二区| 欧美精品一二三区| 亚洲精品第1页| 丁香婷婷综合色啪| 26uuu亚洲| 黄一区二区三区| 欧美一区二区三区日韩视频| 夜夜精品视频一区二区| 欧美高清视频一二三区| 中文字幕在线不卡国产视频| 国产一区二区不卡在线| 日韩欧美中文字幕一区| 午夜电影一区二区| 欧美日韩www| 亚洲一区av在线| 欧美亚洲一区二区在线观看| 悠悠色在线精品| 91国在线观看| 亚洲成人av电影在线| 欧美日韩一区二区欧美激情| 亚洲一区二区三区中文字幕在线| 91免费国产在线| 亚洲欧美一区二区久久| 91国产成人在线| 亚洲高清免费在线| 91麻豆精品国产综合久久久久久| 亚洲国产成人av网| 欧美高清精品3d| 人人精品人人爱| 久久亚区不卡日本| 狠狠色丁香久久婷婷综| 久久你懂得1024| 成人午夜伦理影院| 亚洲精品中文字幕在线观看| 在线视频国内一区二区| 亚洲电影在线免费观看| 日韩欧美一区在线观看| 国产精品 日产精品 欧美精品| 久久婷婷国产综合国色天香| 国产福利91精品| 亚洲理论在线观看| 欧美日韩视频在线第一区| 裸体歌舞表演一区二区| 国产欧美精品一区aⅴ影院| 99久久国产综合精品女不卡| 一区二区免费看| 欧美mv和日韩mv的网站| 99久久精品免费看| 亚洲观看高清完整版在线观看| 国产视频911| 日本精品视频一区二区| 美腿丝袜一区二区三区| 国产视频一区二区在线| 欧美最新大片在线看| 蜜乳av一区二区| 亚洲免费观看视频| 欧美一二三在线| 99久久综合国产精品| 青娱乐精品视频| 国产精品人成在线观看免费| 欧美日韩一区在线观看| 国产成人av电影在线观看| 亚洲女人****多毛耸耸8| 日韩欧美国产高清| 91亚洲永久精品| 激情文学综合丁香| 亚洲国产成人va在线观看天堂| 2023国产精品| 91精品在线一区二区| 91麻豆国产福利在线观看| 极品瑜伽女神91| 无吗不卡中文字幕| 亚洲欧洲综合另类在线| 久久九九久久九九| 日韩精品中文字幕一区| 欧美日韩国产成人在线免费| 北条麻妃一区二区三区| 精品亚洲成a人| 日韩精品一二区| 亚洲国产精品一区二区尤物区| 国产精品美女久久久久久久| 欧美不卡一区二区三区| 欧美一区二区免费视频| 欧美日韩三级一区| 欧美三级资源在线| 在线视频一区二区三区| 91免费看`日韩一区二区| 成人理论电影网| 韩国欧美国产1区| 乱中年女人伦av一区二区| 婷婷中文字幕一区三区| 一区二区三区国产豹纹内裤在线| 国产精品午夜久久| 国产精品午夜电影| 国产精品超碰97尤物18| 国产精品久久久久久久久晋中| 国产女人水真多18毛片18精品视频 | 久久女同精品一区二区| 日韩精品一区二区三区视频在线观看| 欧美性色欧美a在线播放| 色综合一区二区三区| 色综合视频在线观看| 91视频在线观看| 欧洲一区在线电影| 欧美片网站yy| 91麻豆精品国产自产在线 | 国产毛片精品一区| 国内精品嫩模私拍在线| 国产在线精品免费av| 国产成人在线视频网址| 国产·精品毛片| 91久久一区二区| 欧美日韩三级视频| 精品国产伦一区二区三区观看体验 | 欧美日韩在线直播| 777奇米成人网| 久久日一线二线三线suv| 亚洲国产精品t66y| 亚洲午夜久久久久中文字幕久| 无吗不卡中文字幕| 国产麻豆视频一区| 色综合久久综合网欧美综合网| 精品视频123区在线观看| 日韩欧美在线观看一区二区三区| 国产调教视频一区| 一级日本不卡的影视| 男男视频亚洲欧美| 99re8在线精品视频免费播放| 欧美三级中文字| 欧美精品一区二区三区久久久| 国产日韩精品一区二区三区在线| 最好看的中文字幕久久| 偷拍自拍另类欧美| 国产美女精品一区二区三区| 波波电影院一区二区三区| 欧美日韩二区三区| 国产亚洲综合在线| 夜夜夜精品看看| 国产成人亚洲综合a∨婷婷| 欧洲激情一区二区| 久久久精品天堂| 天堂精品中文字幕在线| 99久久精品99国产精品| 日韩精品一区二区三区在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 日韩电影网1区2区| 色呦呦一区二区三区| 国产欧美精品一区二区三区四区| 午夜精品123| 一本色道久久综合精品竹菊|