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

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

?? rpng2-win.c

?? openmeetings組件之GS openmeetings組件之GS openmeetings組件之GS
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*---------------------------------------------------------------------------   rpng2 - progressive-model PNG display program                rpng2-win.c   This program decodes and displays PNG files progressively, as if it were   a web browser (though the front end is only set up to read from files).   It supports gamma correction, user-specified background colors, and user-   specified background patterns (for transparent images).  This version is   for 32-bit Windows; it may compile under 16-bit Windows with a little   tweaking (or maybe not).  Thanks to Adam Costello and Pieter S. van der   Meulen for the "diamond" and "radial waves" patterns, respectively.   to do:    - handle quoted command-line args (especially filenames with spaces)    - finish resizable checkerboard-gradient (sizes 4-128?)    - use %.1023s to simplify truncation of title-bar string?    - have minimum window width:  oh well  ---------------------------------------------------------------------------   Changelog:    - 1.01:  initial public release    - 1.02:  fixed cut-and-paste error in usage screen (oops...)    - 1.03:  modified to allow abbreviated options    - 1.04:  removed bogus extra argument from usage fprintf() [Glenn R-P?];              fixed command-line parsing bug    - 1.10:  enabled "message window"/console (thanks to David Geldreich)    - 1.20:  added runtime MMX-enabling/disabling and new -mmx* options    - 1.21:  made minor tweak to usage screen to fit within 25-line console    - 1.22:  added AMD64/EM64T support (__x86_64__)    - 2.00:  dual-licensed (added GNU GPL)  ---------------------------------------------------------------------------      Copyright (c) 1998-2007 Greg Roelofs.  All rights reserved.      This software is provided "as is," without warranty of any kind,      express or implied.  In no event shall the author or contributors      be held liable for any damages arising in any way from the use of      this software.      The contents of this file are DUAL-LICENSED.  You may modify and/or      redistribute this software according to the terms of one of the      following two licenses (at your option):      LICENSE 1 ("BSD-like with advertising clause"):      Permission is granted to anyone to use this software for any purpose,      including commercial applications, and to alter it and redistribute      it freely, subject to the following restrictions:      1. Redistributions of source code must retain the above copyright         notice, disclaimer, and this list of conditions.      2. Redistributions in binary form must reproduce the above copyright         notice, disclaimer, and this list of conditions in the documenta-         tion and/or other materials provided with the distribution.      3. All advertising materials mentioning features or use of this         software must display the following acknowledgment:            This product includes software developed by Greg Roelofs            and contributors for the book, "PNG: The Definitive Guide,"            published by O'Reilly and Associates.      LICENSE 2 (GNU GPL v2 or later):      This program is free software; you can redistribute it and/or modify      it under the terms of the GNU General Public License as published by      the Free Software Foundation; either version 2 of the License, or      (at your option) any later version.      This program is distributed in the hope that it will be useful,      but WITHOUT ANY WARRANTY; without even the implied warranty of      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      GNU General Public License for more details.      You should have received a copy of the GNU General Public License      along with this program; if not, write to the Free Software Foundation,      Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  ---------------------------------------------------------------------------*/#define PROGNAME  "rpng2-win"#define LONGNAME  "Progressive PNG Viewer for Windows"#define VERSION   "2.00 of 2 June 2007"#include <stdio.h>#include <stdlib.h>#include <string.h>#include <setjmp.h>    /* for jmpbuf declaration in readpng2.h */#include <time.h>#include <math.h>      /* only for PvdM background code */#include <windows.h>#include <conio.h>     /* only for _getch() *//* all for PvdM background code: */#ifndef PI#  define PI             3.141592653589793238#endif#define PI_2             (PI*0.5)#define INV_PI_360       (360.0 / PI)#define MAX(a,b)         (a>b?a:b)#define MIN(a,b)         (a<b?a:b)#define CLIP(a,min,max)  MAX(min,MIN((a),max))#define ABS(a)           ((a)<0?-(a):(a))#define CLIP8P(c)        MAX(0,(MIN((c),255)))   /* 8-bit pos. integer (uch) */#define ROUNDF(f)        ((int)(f + 0.5))#define rgb1_max   bg_freq#define rgb1_min   bg_gray#define rgb2_max   bg_bsat#define rgb2_min   bg_brot/* #define DEBUG */     /* this enables the Trace() macros */#include "readpng2.h"   /* typedefs, common macros, readpng2 prototypes *//* could just include png.h, but this macro is the only thing we need * (name and typedefs changed to local versions); note that side effects * only happen with alpha (which could easily be avoided with * "ush acopy = (alpha);") */#define alpha_composite(composite, fg, alpha, bg) {               \    ush temp = ((ush)(fg)*(ush)(alpha) +                          \                (ush)(bg)*(ush)(255 - (ush)(alpha)) + (ush)128);  \    (composite) = (uch)((temp + (temp >> 8)) >> 8);               \}#define INBUFSIZE 4096   /* with pseudo-timing on (1 sec delay/block), this                          *  block size corresponds roughly to a download                          *  speed 10% faster than theoretical 33.6K maximum                          *  (assuming 8 data bits, 1 stop bit and no other                          *  overhead) *//* local prototypes */static void       rpng2_win_init(void);static int        rpng2_win_create_window(void);static int        rpng2_win_load_bg_image(void);static void       rpng2_win_display_row(ulg row);static void       rpng2_win_finish_display(void);static void       rpng2_win_cleanup(void);LRESULT CALLBACK  rpng2_win_wndproc(HWND, UINT, WPARAM, LPARAM);static char titlebar[1024];static char *progname = PROGNAME;static char *appname = LONGNAME;static char *filename;static FILE *infile;static mainprog_info rpng2_info;static uch inbuf[INBUFSIZE];static int incount;static int pat = 6;         /* must be less than num_bgpat */static int bg_image = 0;static int bgscale = 16;static ulg bg_rowbytes;static uch *bg_data;static struct rgb_color {    uch r, g, b;} rgb[] = {    {  0,   0,   0},    /*  0:  black */    {255, 255, 255},    /*  1:  white */    {173, 132,  57},    /*  2:  tan */    { 64, 132,   0},    /*  3:  medium green */    {189, 117,   1},    /*  4:  gold */    {253, 249,   1},    /*  5:  yellow */    {  0,   0, 255},    /*  6:  blue */    {  0,   0, 120},    /*  7:  medium blue */    {255,   0, 255},    /*  8:  magenta */    { 64,   0,  64},    /*  9:  dark magenta */    {255,   0,   0},    /* 10:  red */    { 64,   0,   0},    /* 11:  dark red */    {255, 127,   0},    /* 12:  orange */    {192,  96,   0},    /* 13:  darker orange */    { 24,  60,   0},    /* 14:  dark green-yellow */    { 85, 125, 200}     /* 15:  ice blue */};/* not used for now, but should be for error-checking:static int num_rgb = sizeof(rgb) / sizeof(struct rgb_color); *//*    This whole struct is a fairly cheesy way to keep the number of    command-line options to a minimum.  The radial-waves background    type is a particularly poor fit to the integer elements of the    struct...but a few macros and a little fixed-point math will do    wonders for ya.    type bits:       F E D C B A 9 8 7 6 5 4 3 2 1 0                             | | | | |                             | | +-+-+-- 0 = sharp-edged checkerboard                             | |         1 = soft diamonds                             | |         2 = radial waves                             | |       3-7 = undefined                             | +-- gradient #2 inverted?                             +-- alternating columns inverted? */static struct background_pattern {    ush type;    int rgb1_max, rgb1_min;     /* or bg_freq, bg_gray */    int rgb2_max, rgb2_min;     /* or bg_bsat, bg_brot (both scaled by 10)*/} bg[] = {    {0+8,   2,0,  1,15},        /* checkered:  tan/black vs. white/ice blue */    {0+24,  2,0,  1,0},         /* checkered:  tan/black vs. white/black */    {0+8,   4,5,  0,2},         /* checkered:  gold/yellow vs. black/tan */    {0+8,   4,5,  0,6},         /* checkered:  gold/yellow vs. black/blue */    {0,     7,0,  8,9},         /* checkered:  deep blue/black vs. magenta */    {0+8,  13,0,  5,14},        /* checkered:  orange/black vs. yellow */    {0+8,  12,0, 10,11},        /* checkered:  orange/black vs. red */    {1,     7,0,  8,0},         /* diamonds:  deep blue/black vs. magenta */    {1,    12,0, 11,0},         /* diamonds:  orange vs. dark red */    {1,    10,0,  7,0},         /* diamonds:  red vs. medium blue */    {1,     4,0,  5,0},         /* diamonds:  gold vs. yellow */    {1,     3,0,  0,0},         /* diamonds:  medium green vs. black */    {2,    16, 100,  20,   0},  /* radial:  ~hard radial color-beams */    {2,    18, 100,  10,   2},  /* radial:  soft, curved radial color-beams */    {2,    16, 256, 100, 250},  /* radial:  very tight spiral */    {2, 10000, 256,  11,   0}   /* radial:  dipole-moire' (almost fractal) */};static int num_bgpat = sizeof(bg) / sizeof(struct background_pattern);/* Windows-specific global variables (could go in struct, but messy...) */static ulg wimage_rowbytes;static uch *dib;static uch *wimage_data;static BITMAPINFOHEADER *bmih;static HWND global_hwnd;static HINSTANCE global_hInst;static int global_showmode;int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode){    char *args[1024];                 /* arbitrary limit, but should suffice */    char **argv = args;    char *p, *q, *bgstr = NULL;    int argc = 0;    int rc, alen, flen;    int error = 0;    int timing = FALSE;    int have_bg = FALSE;    double LUT_exponent;              /* just the lookup table */    double CRT_exponent = 2.2;        /* just the monitor */    double default_display_exponent;  /* whole display system */    MSG msg;    /* First initialize a few things, just to be sure--memset takes care of     * default background color (black), booleans (FALSE), pointers (NULL),     * etc. */    global_hInst = hInst;    global_showmode = showmode;    filename = (char *)NULL;    memset(&rpng2_info, 0, sizeof(mainprog_info));    /* Next reenable console output, which normally goes to the bit bucket     * for windowed apps.  Closing the console window will terminate the     * app.  Thanks to David.Geldreich@realviz.com for supplying the magical     * incantation. */    AllocConsole();    freopen("CONOUT$", "a", stderr);    freopen("CONOUT$", "a", stdout);    /* Set the default value for our display-system exponent, i.e., the     * product of the CRT exponent and the exponent corresponding to     * the frame-buffer's lookup table (LUT), if any.  This is not an     * exhaustive list of LUT values (e.g., OpenStep has a lot of weird     * ones), but it should cover 99% of the current possibilities.  And     * yes, these ifdefs are completely wasted in a Windows program... */#if defined(NeXT)    /* third-party utilities can modify the default LUT exponent */    LUT_exponent = 1.0 / 2.2;    /*    if (some_next_function_that_returns_gamma(&next_gamma))        LUT_exponent = 1.0 / next_gamma;     */#elif defined(sgi)    LUT_exponent = 1.0 / 1.7;    /* there doesn't seem to be any documented function to     * get the "gamma" value, so we do it the hard way */    infile = fopen("/etc/config/system.glGammaVal", "r");    if (infile) {        double sgi_gamma;        fgets(tmpline, 80, infile);        fclose(infile);        sgi_gamma = atof(tmpline);        if (sgi_gamma > 0.0)            LUT_exponent = 1.0 / sgi_gamma;    }#elif defined(Macintosh)    LUT_exponent = 1.8 / 2.61;    /*    if (some_mac_function_that_returns_gamma(&mac_gamma))        LUT_exponent = mac_gamma / 2.61;     */#else    LUT_exponent = 1.0;   /* assume no LUT:  most PCs */#endif    /* the defaults above give 1.0, 1.3, 1.5 and 2.2, respectively: */    default_display_exponent = LUT_exponent * CRT_exponent;    /* If the user has set the SCREEN_GAMMA environment variable as suggested     * (somewhat imprecisely) in the libpng documentation, use that; otherwise     * use the default value we just calculated.  Either way, the user may     * override this via a command-line option. */    if ((p = getenv("SCREEN_GAMMA")) != NULL)        rpng2_info.display_exponent = atof(p);    else        rpng2_info.display_exponent = default_display_exponent;    /* Windows really hates command lines, so we have to set up our own argv.     * Note that we do NOT bother with quoted arguments here, so don't use     * filenames with spaces in 'em! */    argv[argc++] = PROGNAME;    p = cmd;    for (;;) {        if (*p == ' ')            while (*++p == ' ')                ;        /* now p points at the first non-space after some spaces */        if (*p == '\0')            break;    /* nothing after the spaces:  done */        argv[argc++] = q = p;        while (*q && *q != ' ')            ++q;        /* now q points at a space or the end of the string */        if (*q == '\0')            break;    /* last argv already terminated; quit */        *q = '\0';    /* change space to terminator */        p = q + 1;    }    argv[argc] = NULL;   /* terminate the argv array itself */    /* Now parse the command line for options and the PNG filename. */    while (*++argv && !error) {        if (!strncmp(*argv, "-gamma", 2)) {            if (!*++argv)                ++error;            else {                rpng2_info.display_exponent = atof(*argv);                if (rpng2_info.display_exponent <= 0.0)                    ++error;            }        } else if (!strncmp(*argv, "-bgcolor", 4)) {            if (!*++argv)                ++error;            else {                bgstr = *argv;                if (strlen(bgstr) != 7 || bgstr[0] != '#')                    ++error;                else {                    have_bg = TRUE;                    bg_image = FALSE;                }            }        } else if (!strncmp(*argv, "-bgpat", 4)) {            if (!*++argv)                ++error;            else {                pat = atoi(*argv) - 1;                if (pat < 0 || pat >= num_bgpat)                    ++error;                else {                    bg_image = TRUE;                    have_bg = FALSE;                }            }        } else if (!strncmp(*argv, "-timing", 2)) {            timing = TRUE;#if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__))        } else if (!strncmp(*argv, "-nommxfilters", 7)) {            rpng2_info.nommxfilters = TRUE;        } else if (!strncmp(*argv, "-nommxcombine", 7)) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91啪亚洲精品| 国产欧美一区二区精品性| 欧美日韩国产不卡| 精品粉嫩超白一线天av| 亚洲综合男人的天堂| 国产一区二区在线观看免费| 色吊一区二区三区| 国产欧美综合色| 久久成人免费电影| 欧美久久一二区| 亚洲一二三区在线观看| 99久久久无码国产精品| 久久精品在这里| 精一区二区三区| 在线综合亚洲欧美在线视频| 一区二区成人在线视频 | 欧美视频在线播放| 国产日产欧美一区二区三区| 激情综合色播激情啊| 4438x亚洲最大成人网| 亚洲精品伦理在线| aa级大片欧美| 亚洲色图制服诱惑| 99国内精品久久| 亚洲欧美在线aaa| 粉嫩aⅴ一区二区三区四区| 欧美精品一区二区三区很污很色的 | 伦理电影国产精品| 欧美一区二区三区白人| 亚洲最大成人综合| 欧美做爰猛烈大尺度电影无法无天| 国产精品视频在线看| 国产91综合一区在线观看| 久久精品亚洲乱码伦伦中文| 国产成人在线视频免费播放| 精品国产一二三| 欧洲激情一区二区| 亚洲va国产天堂va久久en| 欧美视频在线一区| 日韩1区2区3区| 欧美一区二区美女| 国模大尺度一区二区三区| 精品免费国产二区三区| 国产精品一二三四区| 国产日韩欧美精品在线| 成人app在线观看| 亚洲激情av在线| 3d动漫精品啪啪| 国产一区二区精品在线观看| 亚洲国产精品99久久久久久久久| 白白色 亚洲乱淫| 亚洲一区二区在线观看视频 | 欧美午夜影院一区| 日韩国产欧美三级| 2023国产精品| 99久久精品一区| 午夜精彩视频在线观看不卡| 日韩欧美国产精品一区| 国产黄人亚洲片| 一区二区三区在线免费播放 | 国产精品久久久久一区 | 日韩不卡免费视频| 欧美国产精品中文字幕| 欧美伊人久久久久久午夜久久久久| 三级一区在线视频先锋 | 国产精品视频线看| 欧美日韩日日骚| 国产 欧美在线| 丝袜亚洲精品中文字幕一区| 国产区在线观看成人精品 | 久久婷婷国产综合国色天香| 91蜜桃视频在线| 精品一区二区三区在线观看 | 国产成人精品免费网站| 亚洲精品免费在线| 久久免费国产精品| 欧美二区乱c少妇| 北条麻妃国产九九精品视频| 老司机精品视频线观看86 | 成人看片黄a免费看在线| 亚洲一区二区三区视频在线播放| 精品国产一区二区三区久久久蜜月 | 成人福利视频网站| 久久99国产乱子伦精品免费| 国产一区久久久| 午夜精品久久久久久久蜜桃app| 国产欧美一区二区三区网站 | 国产精品国产三级国产aⅴ入口 | 中文字幕精品—区二区四季| 欧美日韩国产另类一区| 91在线你懂得| 暴力调教一区二区三区| 国产一区二区三区精品视频| 天天综合日日夜夜精品| 亚洲主播在线播放| 日本一区二区三区国色天香 | 欧美日本一区二区三区四区| 99视频国产精品| 成人精品高清在线| 国产一区二区不卡在线| 另类小说图片综合网| 日韩电影在线一区| 日韩精品一二三四| 水野朝阳av一区二区三区| 一级中文字幕一区二区| 亚洲精品久久久久久国产精华液| 亚洲国产精品精华液2区45| 久久综合一区二区| 精品福利在线导航| 精品成人免费观看| 久久久www成人免费无遮挡大片| 日韩欧美在线123| 日韩一级片网站| 欧美一三区三区四区免费在线看| 欧美日韩国产高清一区二区| 欧美人与禽zozo性伦| 欧美日韩免费在线视频| 欧美精品色综合| 欧美成人精品1314www| 欧美第一区第二区| 久久只精品国产| 国产精品网站一区| 亚洲欧美激情一区二区| 亚洲自拍偷拍综合| 天堂av在线一区| 国产乱人伦精品一区二区在线观看 | 国产在线视频不卡二| 国产一区二区精品在线观看| 不卡视频免费播放| 精品视频一区三区九区| 91精品国产一区二区三区 | 成人免费看片app下载| 97久久超碰国产精品| 欧美午夜免费电影| 日韩一区二区三区三四区视频在线观看| 日韩三级视频中文字幕| 久久久99免费| 一区二区在线看| 蜜桃av噜噜一区| 丰满亚洲少妇av| 欧美sm极限捆绑bd| 中文字幕不卡在线播放| 亚洲精品国产视频| 激情国产一区二区| 91丨porny丨中文| 欧美一区二区三区在线观看 | 欧美韩国日本不卡| 亚洲自拍偷拍网站| 国产在线播放一区二区三区| av中文字幕不卡| 欧美一区二区大片| 中文字幕一区在线| 美女久久久精品| 91视频com| 久久久精品免费观看| 亚洲成人精品影院| 不卡区在线中文字幕| 日韩欧美不卡一区| 一区二区三区丝袜| 国产主播一区二区| 欧美日韩久久久一区| 亚洲国产成人在线| 美女精品一区二区| 欧美中文字幕久久| 中文av一区二区| 久草热8精品视频在线观看| 91亚洲国产成人精品一区二区三| 日韩亚洲欧美在线观看| 一个色妞综合视频在线观看| 国产91丝袜在线18| 一区二区三区在线观看国产| 免费在线成人网| 色婷婷精品久久二区二区蜜臀av | 五月天国产精品| 99re热视频精品| 国产午夜久久久久| 久久精品国内一区二区三区| 欧美日韩久久久一区| 亚洲精品免费看| 91视视频在线观看入口直接观看www | 国产不卡高清在线观看视频| 这里只有精品99re| 亚洲va韩国va欧美va| 色香蕉久久蜜桃| 国产精品久久久久aaaa| 国产黄人亚洲片| 2020国产精品自拍| 国产一区二区在线视频| 欧美zozozo| 老司机精品视频一区二区三区| 欧美一级黄色录像| 日韩电影在线观看一区| 欧美乱妇一区二区三区不卡视频| 亚洲乱码中文字幕| 91麻豆精品在线观看| 亚洲丝袜精品丝袜在线| 91小视频免费观看| 亚洲乱码精品一二三四区日韩在线| 97久久精品人人爽人人爽蜜臀| 亚洲免费观看视频|