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

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

?? rpng2-x.c

?? ImagePrinter 把wowd文件打印成png圖片
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*---------------------------------------------------------------------------   rpng2 - progressive-model PNG display program                  rpng2-x.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 the X Window System (tested by the author under Unix and by Martin   Zinser under OpenVMS; may work under OS/2 with a little tweaking).   Thanks to Adam Costello and Pieter S. van der Meulen for the "diamond"   and "radial waves" patterns, respectively.   to do:    - 8-bit support    - finish resizable checkerboard-gradient (sizes 4-128?)    - use %.1023s to simplify truncation of title-bar string?  ---------------------------------------------------------------------------   Changelog:    - 1.01:  initial public release    - 1.02:  modified to allow abbreviated options; fixed char/uchar mismatch    - 1.10:  added support for non-default visuals; fixed X pixel-conversion    - 1.11:  added -usleep option for demos; fixed command-line parsing bug    - 1.12:  added -pause option for demos and testing    - 1.20:  added runtime MMX-enabling/disabling and new -mmx* options    - 1.21:  fixed small X memory leak (thanks to Francois Petitjean)    - 1.22:  fixed XFreeGC() crash bug  ---------------------------------------------------------------------------      Copyright (c) 1998-2001 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.      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.  ---------------------------------------------------------------------------*/#define PROGNAME  "rpng2-x"#define LONGNAME  "Progressive PNG Viewer for X"#define VERSION   "1.22 of 16 August 2001"#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 <X11/Xlib.h>#include <X11/Xutil.h>#include <X11/Xos.h>#include <X11/keysym.h>   /* defines XK_* macros */#ifdef VMS#  include <unistd.h>#endif/* 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_x_init(void);static int  rpng2_x_create_window(void);static int  rpng2_x_load_bg_image(void);static void rpng2_x_display_row(ulg row);static void rpng2_x_finish_display(void);static void rpng2_x_cleanup(void);static int  rpng2_x_msb(ulg u32val);static char titlebar[1024], *window_name = titlebar;static char *appname = LONGNAME;static char *icon_name = PROGNAME;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;int pause_after_pass = FALSE;int demo_timing = FALSE;ulg usleep_duration = 0L;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);/* X-specific variables */static char *displayname;static XImage *ximage;static Display *display;static int depth;static Visual *visual;static XVisualInfo *visual_list;static int RShift, GShift, BShift;static ulg RMask, GMask, BMask;static Window window;static GC gc;static Colormap colormap;static int have_nondefault_visual = FALSE;static int have_colormap = FALSE;static int have_window = FALSE;static int have_gc = FALSE;int main(int argc, char **argv){#ifdef sgi    char tmpline[80];#endif    char *p, *bgstr = NULL;    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 */    XEvent e;    KeySym k;    /* First initialize a few things, just to be sure--memset takes care of     * default background color (black), booleans (FALSE), pointers (NULL),     * etc. */    displayname = (char *)NULL;    filename = (char *)NULL;    memset(&rpng2_info, 0, sizeof(mainprog_info));    /* 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. */#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;    /* Now parse the command line for options and the PNG filename. */    while (*++argv && !error) {        if (!strncmp(*argv, "-display", 2)) {            if (!*++argv)                ++error;            else                displayname = *argv;        } else 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;                }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜视频福利| 麻豆一区二区在线| 精品国产污污免费网站入口| 欧美三级日韩三级| 欧美在线色视频| 欧美日韩日日摸| 欧美精品亚洲二区| 欧美精品xxxxbbbb| 欧美一级艳片视频免费观看| 日韩视频一区二区三区| 精品国产在天天线2019| 久久噜噜亚洲综合| 中文字幕在线一区免费| 亚洲一卡二卡三卡四卡| 日韩高清不卡在线| 国产伦精一区二区三区| 成人av免费网站| 91麻豆精品在线观看| 欧美男男青年gay1069videost| 欧美日韩精品一区视频| 欧美xingq一区二区| 国产色一区二区| 亚洲精品中文在线观看| 日韩高清在线不卡| 风流少妇一区二区| 欧美色欧美亚洲另类二区| 欧美一级一区二区| 亚洲欧洲精品一区二区精品久久久| 亚洲激情中文1区| 麻豆传媒一区二区三区| 国产91丝袜在线18| 欧美日韩一区二区三区在线看 | 91免费版在线看| 精品视频一区二区三区免费| 欧美成人精品福利| 亚洲人成人一区二区在线观看| 午夜精品福利久久久| 国产精品12区| 欧美日韩国产成人在线91| 国产色91在线| 日韩精品乱码av一区二区| 成人午夜大片免费观看| 日韩一区二区三区在线观看| 亚洲欧美日韩国产成人精品影院| 日本va欧美va欧美va精品| 91在线一区二区| 精品va天堂亚洲国产| 亚洲综合在线免费观看| 国产高清视频一区| 91麻豆精品国产91久久久久久久久| 国产精品网站导航| 日韩高清一区在线| 欧美日韩视频在线第一区 | 日本欧美大码aⅴ在线播放| 国产成人综合在线| 亚洲精品一区二区三区在线观看| 亚洲精选视频免费看| 成人一区二区三区| 精品国产乱子伦一区| 男人的天堂亚洲一区| 欧美日韩视频一区二区| 亚洲精品国产视频| a在线欧美一区| 国产日韩视频一区二区三区| 久久精品av麻豆的观看方式| 欧美精品久久久久久久久老牛影院| 国产精品毛片a∨一区二区三区| 国产一区在线观看视频| 91精品国产综合久久久久久| 天堂久久一区二区三区| 欧美日韩国产一区二区三区地区| 亚洲成人av在线电影| 色综合久久久久综合| 国产精品视频一二三| 成人激情校园春色| 国产精品久久久久婷婷| 丰满少妇在线播放bd日韩电影| 国产日韩高清在线| 丰满白嫩尤物一区二区| 中文字幕国产一区| av不卡在线观看| 国产精品久久久久aaaa樱花| eeuss影院一区二区三区| 亚洲欧美激情在线| 欧美性猛交一区二区三区精品| 亚洲精选视频在线| 欧美日韩精品一区二区| 老司机精品视频线观看86 | 成人免费毛片aaaaa**| 中国色在线观看另类| 91在线精品一区二区| 亚洲电影视频在线| 精品少妇一区二区三区日产乱码 | 久久久久9999亚洲精品| 成人一区二区三区视频在线观看| 国产精品国产三级国产aⅴ原创 | 欧美日韩亚洲综合在线 | 99国产精品久久久| 亚洲伊人伊色伊影伊综合网| 欧美一区二区视频免费观看| 国产电影一区二区三区| 亚洲精品久久久蜜桃| 日韩欧美一二三区| www.欧美.com| 免费看精品久久片| 亚洲视频在线一区二区| 日韩一区二区三区精品视频| 不卡影院免费观看| 日本午夜精品一区二区三区电影| 久久精品一区二区三区不卡牛牛| 91丨九色丨黑人外教| 麻豆国产精品官网| 亚洲一二三四区| 国产亚洲精品福利| 91麻豆精品国产自产在线观看一区| 国产成人在线电影| 免费看日韩a级影片| 亚洲视频免费观看| 久久久久久久综合| 欧美久久久久免费| 91麻豆国产香蕉久久精品| 日韩国产在线观看一区| 欧美久久婷婷综合色| 国产原创一区二区三区| 一级做a爱片久久| 精品奇米国产一区二区三区| 91豆麻精品91久久久久久| 精品一区精品二区高清| 亚洲欧美另类综合偷拍| 欧美一级在线免费| 欧美日韩精品专区| av成人免费在线观看| 国产成人午夜精品影院观看视频 | 精品sm在线观看| 色婷婷狠狠综合| 国产一区二区三区久久悠悠色av| 亚洲一区二区影院| 国产精品护士白丝一区av| 日韩免费高清电影| 91黄色激情网站| 国产很黄免费观看久久| 国产在线精品一区二区夜色 | 色婷婷国产精品久久包臀| 国产一区二区在线免费观看| 午夜精品影院在线观看| 久久久久国色av免费看影院| 日韩欧美精品三级| 欧美日韩一本到| 91麻豆精品国产91久久久更新时间| 99久久综合国产精品| www.亚洲人| 国产精品资源在线观看| 国产精品一品视频| 免费观看在线色综合| 麻豆高清免费国产一区| 日本vs亚洲vs韩国一区三区| 亚洲gay无套男同| 国产精品乱人伦中文| 中文字幕人成不卡一区| 久久精品视频一区二区| 久久欧美中文字幕| 欧美电影免费观看高清完整版在线观看 | 欧美国产成人在线| 久久久久久久久久久电影| 国产色综合久久| 国产女人水真多18毛片18精品视频| 日韩你懂的在线观看| 欧美一级一级性生活免费录像| 91精品国产品国语在线不卡| 欧美日韩www| 欧美一区二区私人影院日本| 91精选在线观看| 国产夜色精品一区二区av| 国产精品不卡在线观看| 一区二区在线看| 亚洲电影欧美电影有声小说| 久久精品亚洲精品国产欧美kt∨ | 播五月开心婷婷综合| 成人精品国产一区二区4080| 国产成人啪免费观看软件| 丰满亚洲少妇av| 色妞www精品视频| 精品视频1区2区3区| 国产目拍亚洲精品99久久精品| 国产精品私人影院| 亚洲欧美电影院| 婷婷成人综合网| 丁香天五香天堂综合| 91丨九色丨黑人外教| 欧美日韩亚洲另类| 欧美一区二区视频在线观看2020 | av一本久道久久综合久久鬼色| 日本高清视频一区二区| 欧美美女激情18p| 欧美激情一区二区三区蜜桃视频| 国产精品国产成人国产三级| 亚洲色图欧洲色图婷婷| 免播放器亚洲一区| 不卡av免费在线观看| 欧美日本高清视频在线观看|