亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
99天天综合性| 国产乱人伦偷精品视频不卡| 久久久久久久综合| 91免费视频观看| 肉丝袜脚交视频一区二区| 久久久综合九色合综国产精品| 99久久婷婷国产综合精品电影| 国产成人av一区二区三区在线| 国产成人av一区二区三区在线 | 久久不见久久见中文字幕免费| 日韩一区中文字幕| 亚洲黄色av一区| 美腿丝袜在线亚洲一区| 久久99精品视频| 韩国三级中文字幕hd久久精品| 国产传媒日韩欧美成人| 色老头久久综合| 日韩欧美一二三四区| 精品国产乱码久久久久久牛牛| 久久精品日产第一区二区三区高清版| 久久久久久久久岛国免费| 国产精品系列在线| 亚洲一区二区高清| 日本不卡视频一二三区| 精品一区二区免费| 99精品欧美一区二区三区小说| 91 com成人网| 精品久久久久久久久久久久久久久久久 | 在线亚洲一区二区| 欧美一区二区福利在线| 国产精品久久看| 五月天婷婷综合| 不卡欧美aaaaa| 欧美日韩在线一区二区| 国产欧美精品一区二区三区四区 | 国产肉丝袜一区二区| 视频一区中文字幕国产| 国产91精品在线观看| 欧美精品777| 国产精品福利影院| 日韩vs国产vs欧美| www.成人网.com| 国产亚洲成年网址在线观看| 亚洲色图第一区| 国产a区久久久| 精品国产电影一区二区| 天堂蜜桃91精品| 欧美天堂一区二区三区| 亚洲图片另类小说| www.亚洲在线| 久久久99久久| 国产在线视频精品一区| 欧美色倩网站大全免费| 亚洲成人动漫在线观看| 91女厕偷拍女厕偷拍高清| 日本一区二区三区电影| 国产麻豆一精品一av一免费| 精品日韩av一区二区| 紧缚奴在线一区二区三区| 精品少妇一区二区三区在线视频| 蜜臀a∨国产成人精品| 日韩三级视频中文字幕| 日本91福利区| 欧美一区二区三区免费视频| 奇米四色…亚洲| 精品久久久网站| 国产成人福利片| 国产欧美1区2区3区| 色婷婷香蕉在线一区二区| 亚洲国产视频一区二区| 欧美自拍偷拍午夜视频| 天堂一区二区在线| 色系网站成人免费| 麻豆精品一区二区综合av| 欧美一区二区三区啪啪| 激情久久五月天| 久久久久88色偷偷免费| 成人动漫av在线| 视频一区视频二区中文字幕| 久久久久国产精品免费免费搜索 | 一级精品视频在线观看宜春院| 欧美午夜宅男影院| 美腿丝袜亚洲一区| 国产精品免费视频观看| 欧美亚洲综合久久| 麻豆免费精品视频| 亚洲精品成人在线| 国产亚洲精品久| 色香蕉久久蜜桃| 国产精华液一区二区三区| 亚洲六月丁香色婷婷综合久久 | 精品国产一区二区三区av性色| 欧美日韩视频在线一区二区| 欧美在线免费视屏| 91成人免费网站| 欧美午夜精品一区二区三区| 色悠悠久久综合| 欧美系列日韩一区| 欧美视频在线一区二区三区| 91高清视频在线| 色诱亚洲精品久久久久久| caoporn国产精品| 国产成人在线色| 成人午夜免费av| 大美女一区二区三区| 蜜桃视频在线一区| 国产精品12区| 色婷婷狠狠综合| 91精品国产综合久久香蕉麻豆| 精品视频123区在线观看| 8x福利精品第一导航| 日韩免费视频一区| 精品国产乱码久久久久久久久| 国产亚洲欧美日韩日本| 国产精品久久久久影院老司| 中文字幕中文字幕一区| 亚洲蜜臀av乱码久久精品蜜桃| 中国av一区二区三区| 亚洲成av人影院| 九九国产精品视频| 处破女av一区二区| 99久久综合国产精品| 91高清视频在线| 久久免费精品国产久精品久久久久 | 亚洲欧美区自拍先锋| 亚洲福利国产精品| 奇米四色…亚洲| 欧美亚洲一区二区在线| 久久久久综合网| 亚洲大型综合色站| 国产凹凸在线观看一区二区| 99热这里都是精品| 久久久久久久久久久久久久久99| 亚洲卡通动漫在线| 久久草av在线| 欧美日韩激情在线| 日本一区二区三区免费乱视频| 亚洲理论在线观看| 成人理论电影网| 日韩欧美123| 性做久久久久久久免费看| 91色婷婷久久久久合中文| 亚洲精品在线观看视频| 一区二区成人在线视频| 国产**成人网毛片九色| 精品粉嫩超白一线天av| 亚洲国产人成综合网站| 色婷婷av一区二区三区之一色屋| 日韩美女视频一区| 99精品久久久久久| 最新日韩在线视频| 成人一区二区在线观看| 久久综合色天天久久综合图片| 免费一级欧美片在线观看| 在线观看一区二区视频| 亚洲免费观看高清完整版在线观看熊 | 老司机一区二区| 欧美丰满少妇xxxxx高潮对白| 亚洲国产精品人人做人人爽| 欧美视频一区在线| 亚洲二区在线视频| 欧美电影免费观看高清完整版在 | 在线不卡免费欧美| 日本不卡在线视频| 精品电影一区二区三区| 国产精品一二三四| 欧美国产日韩精品免费观看| 91亚洲精品久久久蜜桃网站| 欧美一区永久视频免费观看| 天堂精品中文字幕在线| 精品福利视频一区二区三区| 国产久卡久卡久卡久卡视频精品| 中文字幕不卡的av| 欧美二区乱c少妇| 国产在线一区观看| 成人免费一区二区三区在线观看| 91麻豆精品一区二区三区| 亚洲一区视频在线观看视频| 51精品秘密在线观看| a美女胸又www黄视频久久| 亚洲第一二三四区| 中文字幕一区二区三区在线观看 | 国内精品国产三级国产a久久| 国产精品乱人伦一区二区| 91精品国产日韩91久久久久久| 午夜激情一区二区| 欧美电影影音先锋| 精品在线观看免费| 精品国产一区二区三区久久久蜜月| 成人免费av资源| 国产一区三区三区| 日韩成人午夜电影| 免费成人在线网站| 国产人成亚洲第一网站在线播放| caoporen国产精品视频| 国产一区久久久| 亚洲一区二区三区四区五区中文 | 欧美精品一二三区| 91麻豆精东视频| 96av麻豆蜜桃一区二区|