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

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

?? png.pm

?? 新天堂多用戶相冊系統v2.0B 一款基于GNU許可的免費的多用戶相冊系統
?? PM
字號:
package Image::Info::PNG;

# Copyright 1999-2000, Gisle Aas.
#
# This library is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.

=begin register

MAGIC: /^\x89PNG\x0d\x0a\x1a\x0a/

Information from IHDR, PLTE, gAMA, pHYs, tEXt, tIME chunks are
extracted.  The sequence of chunks are also given by the C<PNG_Chunks>
key.

=end register

=cut

use strict;

# Test for Compress::Zlib (for reading zTXt chunks)
my $have_zlib = 0;
eval {
    require Compress::Zlib;
    $have_zlib++;
};

sub my_read
{
    my($source, $len) = @_;
    my $buf;
    my $n = read($source, $buf, $len);
    die "read failed: $!" unless defined $n;
    die "short read ($len/$n)" unless $n == $len;
    $buf;
}


sub process_file
{
    my($info, $fh) = @_;

    my $signature = my_read($fh, 8);
    die "Bad PNG signature"
	unless $signature eq "\x89PNG\x0d\x0a\x1a\x0a";

    $info->push_info(0, "file_media_type" => "image/png");
    $info->push_info(0, "file_ext" => "png");

    my @chunks;

    while (1) {
        my($len, $type) = unpack("Na4", my_read($fh, 8));

	if (@chunks) {
	    my $last = $chunks[-1];
	    $last =~ s/\s(\d+)$//;
	    my $count = $1 || 1;
	    if ($last eq $type) {
		$count++;
		$chunks[-1] = "$type $count";
	    }
	    else {
		push(@chunks, $type);
	    }
	}
	else {
	    push(@chunks, $type);
	}

        last if $type eq "IEND";
        my $data = my_read($fh, $len + 4);
	my $crc = unpack("N", substr($data, -4, 4, ""));
	if ($type eq "IHDR" && $len == 13) {
	    my($w, $h, $depth, $ctype, $compression, $filter, $interlace) =
		unpack("NNCCCCC", $data);
	    $ctype = {
		      0 => "Gray",
		      2 => "RGB",
		      3 => "Indexed-RGB",
		      4 => "GrayA",
		      6 => "RGBA",
		     }->{$ctype} || "PNG-$ctype";

	    $compression = "Deflate" if $compression == 0;
	    $filter = "Adaptive" if $filter == 0;
	    $interlace = "Adam7" if $interlace == 1;

	    $info->push_info(0, "width", $w);
	    $info->push_info(0, "height", $h);
	    $info->push_info(0, "SampleFormat", "U$depth");
	    $info->push_info(0, "color_type", $ctype);

	    $info->push_info(0, "Compression", $compression);
	    $info->push_info(0, "PNG_Filter", $filter);
	    $info->push_info(0, "Interlace", $interlace)
		if $interlace;
	}
	elsif ($type eq "PLTE") {
	    my @table;
	    while (length $data) {
		push(@table, sprintf("#%02x%02x%02x",
				     unpack("C3", substr($data, 0, 3, ""))));
	    }
	    $info->push_info(0, "ColorPalette" => \@table);
	}
	elsif ($type eq "gAMA" && $len == 4) {
	    $info->push_info(0, "Gamma", unpack("N", $data)/100_000);
	}
	elsif ($type eq "pHYs" && $len == 9) {
	    my $res;
	    my($res_x, $res_y, $unit) = unpack("NNC", $data);
	    if (0 && $unit == 1) {
		# convert to dpi
		$unit = "dpi";
		for ($res_x, $res_y) {
		    $_ *= 0.0254;
		}
	    }
	    $res = ($res_x == $res_y) ? $res_x : "$res_x/$res_y";
	    if ($unit) {
		if ($unit == 1) {
		    $res .= " dpm";
		}
		else {
		    $res .= " png-unit-$unit";
		}
	    }
	    $info->push_info(0, "resolution" => $res)
	}
	elsif ($type eq "tEXt") {
	    my($key, $val) = split(/\0/, $data, 2);
	    # XXX should make sure $key is not in conflict with any
	    # other key we might generate
	    $info->push_info(0, $key, $val);
	}
	elsif ($type eq "zTXt" && $have_zlib) {
		my($key, $val) = split(/\0/, $data, 2);
		my($method,$ctext) = split(//, $val, 2);
		if ($method == 0) {
		    $info->push_info(0, $key, Compress::Zlib::uncompress($ctext));
		} else {
		    $info->push_info(0, "Chunk-$type" => $data);
		}
	}
	elsif ($type eq "tIME" && $len == 7) {
	    $info->push_info(0, "LastModificationTime",
			     sprintf("%04d-%02d-%02d %02d:%02d:%02d",
				     unpack("nC5", $data)));
	}
	elsif ($type eq "sBIT") {
	    $info->push_info(0, "SignificantBits" => unpack("C*", $data));
	}
	elsif ($type eq "IDAT") {
	    # ignore
	}
	else {
	    $info->push_info(0, "Chunk-$type" => $data);
	}
    }

    $info->push_info(0, "PNG_Chunks", @chunks);

    unless ($info->get_info(0, "resolution")) {
	$info->push_info(0, "resolution", "1/1");
    }
}

1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一二三区在线观看| 亚洲一级片在线观看| 91精品婷婷国产综合久久性色| 色综合激情久久| 91污在线观看| 在线视频你懂得一区| 欧美日韩在线观看一区二区| 欧美中文字幕不卡| 欧美群妇大交群的观看方式| 欧美丰满嫩嫩电影| 日韩欧美亚洲国产另类| 欧美成人女星排名| 国产亚洲欧美一区在线观看| 国产日韩欧美制服另类| 中文字幕一区二区三区四区| 樱桃国产成人精品视频| 一区二区三区日韩精品| 亚洲国产中文字幕在线视频综合| 亚洲成av人片一区二区三区| 免费观看日韩av| 福利一区二区在线观看| 色婷婷av一区二区| 91精品国产综合久久久蜜臀图片| 精品噜噜噜噜久久久久久久久试看| 久久精品日韩一区二区三区| 一区在线观看免费| 免费国产亚洲视频| 成人免费看视频| 欧美性一级生活| 精品国产91亚洲一区二区三区婷婷| 欧美国产1区2区| 日日骚欧美日韩| 成人免费毛片app| 欧美另类高清zo欧美| 国产亚洲欧美在线| 天堂成人国产精品一区| 国产在线不卡一卡二卡三卡四卡| 91色视频在线| 精品免费日韩av| 亚洲成人一区在线| 成人精品小蝌蚪| 日韩欧美激情在线| 亚洲精品免费电影| 国产一区二区精品在线观看| 在线观看免费一区| 中文字幕精品综合| 免费看日韩精品| 欧美性大战久久久久久久| 国产免费成人在线视频| 麻豆精品一区二区三区| 欧美午夜精品一区| 亚洲欧洲av色图| 国产一区二区成人久久免费影院| 欧美日韩国产另类不卡| 《视频一区视频二区| 国产精品一区二区久久不卡 | 国产白丝精品91爽爽久久| 欧美丝袜自拍制服另类| 国产精品免费视频观看| 激情五月播播久久久精品| 欧美系列一区二区| 亚洲一区在线播放| 色综合一区二区三区| 国产精品久久久久久亚洲毛片| 精品一区二区免费看| 91精品国产一区二区三区蜜臀| 亚洲综合视频在线| 色婷婷综合五月| 国产精品精品国产色婷婷| 成人黄色电影在线| 国产精品乱码久久久久久| 成人性生交大片免费看视频在线 | 亚洲综合一区二区三区| 91丨九色丨蝌蚪富婆spa| 欧美高清一级片在线观看| 国产成人午夜视频| 久久精品欧美日韩精品| 国产一区二区三区久久久| 国产三级精品三级在线专区| 国产精品91一区二区| 国产亚洲欧美日韩在线一区| 成人福利电影精品一区二区在线观看 | 国产精品麻豆一区二区| 成人免费视频网站在线观看| 中文字幕中文字幕一区| 色婷婷精品大视频在线蜜桃视频| 尤物在线观看一区| 在线成人免费观看| 老司机免费视频一区二区三区| 精品捆绑美女sm三区| 丁香啪啪综合成人亚洲小说| 亚洲欧美怡红院| 欧美午夜电影网| 免费一级欧美片在线观看| 国产日韩欧美一区二区三区乱码 | 91精品国产91久久久久久一区二区 | 一区在线播放视频| 欧美伊人久久久久久久久影院| 亚洲国产日日夜夜| 26uuu国产日韩综合| 成人影视亚洲图片在线| 亚洲国产精品一区二区尤物区| 欧美一区二区播放| 成人免费高清视频在线观看| 伊人开心综合网| 精品久久久久久久久久久久久久久| 成人激情免费电影网址| 五月天亚洲婷婷| 欧美激情一二三区| 51久久夜色精品国产麻豆| 国产91精品精华液一区二区三区 | 国产亚洲精品bt天堂精选| 日本高清不卡视频| 国产精品一区二区视频| 亚洲国产精品欧美一二99| 国产亚洲自拍一区| 欧美日韩国产电影| 99久久精品国产毛片| 免费成人在线观看| 亚洲在线观看免费视频| 国产日韩影视精品| 欧美一级搡bbbb搡bbbb| 一本在线高清不卡dvd| 国产毛片精品视频| 五月天视频一区| 国产精品初高中害羞小美女文| 欧美一二三四区在线| 在线视频一区二区三区| 成人国产精品免费观看| 精品亚洲成a人在线观看| 亚洲一区二区三区四区五区中文| 国产欧美日韩在线| 2021久久国产精品不只是精品 | 免费精品99久久国产综合精品| 亚洲色图在线看| 欧美经典三级视频一区二区三区| 日韩欧美一区中文| 欧美日韩日日骚| 欧美日韩一卡二卡| 欧美日韩一区在线观看| 色哟哟国产精品免费观看| 成人黄色电影在线| 成人一区在线看| 丁香天五香天堂综合| 国产一区 二区| 韩国毛片一区二区三区| 老汉av免费一区二区三区| 蜜桃视频在线一区| 青青青伊人色综合久久| 麻豆精品在线看| 韩国av一区二区三区在线观看| 日韩国产在线一| 人禽交欧美网站| 日韩精品国产欧美| 久草精品在线观看| 国产在线精品免费| 成人午夜视频网站| 成人性生交大片| 97成人超碰视| 欧美日韩日本视频| 日韩美女主播在线视频一区二区三区 | 91精品免费观看| 日韩视频在线观看一区二区| 欧美mv日韩mv| 久久中文娱乐网| 中文字幕精品在线不卡| 亚洲色图视频网| 亚洲高清视频在线| 日本不卡不码高清免费观看| 捆绑变态av一区二区三区| 国产综合色产在线精品| yourporn久久国产精品| 91久久精品一区二区三| 91精品国产日韩91久久久久久| www激情久久| 中文字幕一区不卡| 亚洲一区二区偷拍精品| 美女性感视频久久| 不卡的av电影| 欧美一区在线视频| 亚洲国产激情av| 亚洲电影视频在线| 国产精品亚洲一区二区三区在线| 99re这里只有精品6| 欧美一区二区在线播放| 国产精品午夜免费| 秋霞av亚洲一区二区三| 成人午夜激情在线| 欧美精品一级二级| 国产精品天干天干在线综合| 丝袜美腿亚洲一区二区图片| 国产高清亚洲一区| 91麻豆精品国产91久久久| 国产精品日日摸夜夜摸av| 日韩精品色哟哟| 99久久精品免费看国产免费软件| 欧美一区二区在线免费播放| 亚洲视频在线观看三级| 精品一区二区三区久久久| 91久久久免费一区二区|