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

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

?? jpgencoder.as

?? FLASH+java動態圖表
?? AS
?? 第 1 頁 / 共 2 頁
字號:
/*
	Adobe Systems Incorporated(r) Source Code License Agreement
	Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
	
	Please read this Source Code License Agreement carefully before using
	the source code.
	
	Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive, 
	no-charge, royalty-free, irrevocable copyright license, to reproduce,
	prepare derivative works of, publicly display, publicly perform, and
	distribute this source code and such derivative works in source or 
	object code form without any attribution requirements.  
	
	The name "Adobe Systems Incorporated" must not be used to endorse or promote products
	derived from the source code without prior written permission.
	
	You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
	against any loss, damage, claims or lawsuits, including attorney's 
	fees that arise or result from your use or distribution of the source 
	code.
	
	THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT 
	ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
	BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
	FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  ALSO, THERE IS NO WARRANTY OF 
	NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT.  IN NO EVENT SHALL MACROMEDIA
	OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
	EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
	PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
	OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
	WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
	OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
	ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package com.adobe.images
{
	import flash.geom.*;
	import flash.display.*;
	import flash.utils.*;
	
	/**
	 * Class that converts BitmapData into a valid JPEG
	 */		
	public class JPGEncoder
	{

		// Static table initialization
	
		private var ZigZag:Array = [
			 0, 1, 5, 6,14,15,27,28,
			 2, 4, 7,13,16,26,29,42,
			 3, 8,12,17,25,30,41,43,
			 9,11,18,24,31,40,44,53,
			10,19,23,32,39,45,52,54,
			20,22,33,38,46,51,55,60,
			21,34,37,47,50,56,59,61,
			35,36,48,49,57,58,62,63
		];
	
		private var YTable:Array = new Array(64);
		private var UVTable:Array = new Array(64);
		private var fdtbl_Y:Array = new Array(64);
		private var fdtbl_UV:Array = new Array(64);
	
		private function initQuantTables(sf:int):void
		{
			var i:int;
			var t:Number;
			var YQT:Array = [
				16, 11, 10, 16, 24, 40, 51, 61,
				12, 12, 14, 19, 26, 58, 60, 55,
				14, 13, 16, 24, 40, 57, 69, 56,
				14, 17, 22, 29, 51, 87, 80, 62,
				18, 22, 37, 56, 68,109,103, 77,
				24, 35, 55, 64, 81,104,113, 92,
				49, 64, 78, 87,103,121,120,101,
				72, 92, 95, 98,112,100,103, 99
			];
			for (i = 0; i < 64; i++) {
				t = Math.floor((YQT[i]*sf+50)/100);
				if (t < 1) {
					t = 1;
				} else if (t > 255) {
					t = 255;
				}
				YTable[ZigZag[i]] = t;
			}
			var UVQT:Array = [
				17, 18, 24, 47, 99, 99, 99, 99,
				18, 21, 26, 66, 99, 99, 99, 99,
				24, 26, 56, 99, 99, 99, 99, 99,
				47, 66, 99, 99, 99, 99, 99, 99,
				99, 99, 99, 99, 99, 99, 99, 99,
				99, 99, 99, 99, 99, 99, 99, 99,
				99, 99, 99, 99, 99, 99, 99, 99,
				99, 99, 99, 99, 99, 99, 99, 99
			];
			for (i = 0; i < 64; i++) {
				t = Math.floor((UVQT[i]*sf+50)/100);
				if (t < 1) {
					t = 1;
				} else if (t > 255) {
					t = 255;
				}
				UVTable[ZigZag[i]] = t;
			}
			var aasf:Array = [
				1.0, 1.387039845, 1.306562965, 1.175875602,
				1.0, 0.785694958, 0.541196100, 0.275899379
			];
			i = 0;
			for (var row:int = 0; row < 8; row++)
			{
				for (var col:int = 0; col < 8; col++)
				{
					fdtbl_Y[i]  = (1.0 / (YTable [ZigZag[i]] * aasf[row] * aasf[col] * 8.0));
					fdtbl_UV[i] = (1.0 / (UVTable[ZigZag[i]] * aasf[row] * aasf[col] * 8.0));
					i++;
				}
			}
		}
	
		private var YDC_HT:Array;
		private var UVDC_HT:Array;
		private var YAC_HT:Array;
		private var UVAC_HT:Array;
	
		private function computeHuffmanTbl(nrcodes:Array, std_table:Array):Array
		{
			var codevalue:int = 0;
			var pos_in_table:int = 0;
			var HT:Array = new Array();
			for (var k:int=1; k<=16; k++) {
				for (var j:int=1; j<=nrcodes[k]; j++) {
					HT[std_table[pos_in_table]] = new BitString();
					HT[std_table[pos_in_table]].val = codevalue;
					HT[std_table[pos_in_table]].len = k;
					pos_in_table++;
					codevalue++;
				}
				codevalue*=2;
			}
			return HT;
		}
	
		private var std_dc_luminance_nrcodes:Array = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];
		private var std_dc_luminance_values:Array = [0,1,2,3,4,5,6,7,8,9,10,11];
		private var std_ac_luminance_nrcodes:Array = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];
		private var std_ac_luminance_values:Array = [
			0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,
			0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
			0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
			0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,
			0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
			0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
			0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
			0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
			0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
			0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
			0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
			0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
			0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
			0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
			0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
			0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
			0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
			0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
			0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
			0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
			0xf9,0xfa
		];
	
		private var std_dc_chrominance_nrcodes:Array = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];
		private var std_dc_chrominance_values:Array = [0,1,2,3,4,5,6,7,8,9,10,11];
		private var std_ac_chrominance_nrcodes:Array = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];
		private var std_ac_chrominance_values:Array = [
			0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,
			0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
			0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,
			0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,
			0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,
			0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,
			0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,
			0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,
			0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,
			0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,
			0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,
			0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,
			0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,
			0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,
			0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,
			0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,
			0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,
			0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,
			0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
			0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
			0xf9,0xfa
		];
	
		private function initHuffmanTbl():void
		{
			YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);
			UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);
			YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);
			UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);
		}
	
		private var bitcode:Array = new Array(65535);
		private var category:Array = new Array(65535);
	
		private function initCategoryNumber():void
		{
			var nrlower:int = 1;
			var nrupper:int = 2;
			var nr:int;
			for (var cat:int=1; cat<=15; cat++) {
				//Positive numbers
				for (nr=nrlower; nr<nrupper; nr++) {
					category[32767+nr] = cat;
					bitcode[32767+nr] = new BitString();
					bitcode[32767+nr].len = cat;
					bitcode[32767+nr].val = nr;
				}
				//Negative numbers
				for (nr=-(nrupper-1); nr<=-nrlower; nr++) {
					category[32767+nr] = cat;
					bitcode[32767+nr] = new BitString();
					bitcode[32767+nr].len = cat;
					bitcode[32767+nr].val = nrupper-1+nr;
				}
				nrlower <<= 1;
				nrupper <<= 1;
			}
		}
	
		// IO functions
	
		private var byteout:ByteArray;
		private var bytenew:int = 0;
		private var bytepos:int = 7;
	
		private function writeBits(bs:BitString):void
		{
			var value:int = bs.val;
			var posval:int = bs.len-1;
			while ( posval >= 0 ) {
				if (value & uint(1 << posval) ) {
					bytenew |= uint(1 << bytepos);
				}
				posval--;
				bytepos--;
				if (bytepos < 0) {
					if (bytenew == 0xFF) {
						writeByte(0xFF);
						writeByte(0);
					}
					else {
						writeByte(bytenew);
					}
					bytepos=7;
					bytenew=0;
				}
			}
		}
	
		private function writeByte(value:int):void
		{
			byteout.writeByte(value);
		}
	
		private function writeWord(value:int):void
		{
			writeByte((value>>8)&0xFF);
			writeByte((value   )&0xFF);
		}
	
		// DCT & quantization core
	
		private function fDCTQuant(data:Array, fdtbl:Array):Array
		{
			var tmp0:Number, tmp1:Number, tmp2:Number, tmp3:Number, tmp4:Number, tmp5:Number, tmp6:Number, tmp7:Number;
			var tmp10:Number, tmp11:Number, tmp12:Number, tmp13:Number;
			var z1:Number, z2:Number, z3:Number, z4:Number, z5:Number, z11:Number, z13:Number;
			var i:int;
			/* Pass 1: process rows. */
			var dataOff:int=0;
			for (i=0; i<8; i++) {
				tmp0 = data[dataOff+0] + data[dataOff+7];
				tmp7 = data[dataOff+0] - data[dataOff+7];
				tmp1 = data[dataOff+1] + data[dataOff+6];
				tmp6 = data[dataOff+1] - data[dataOff+6];
				tmp2 = data[dataOff+2] + data[dataOff+5];
				tmp5 = data[dataOff+2] - data[dataOff+5];
				tmp3 = data[dataOff+3] + data[dataOff+4];
				tmp4 = data[dataOff+3] - data[dataOff+4];
	
				/* Even part */
				tmp10 = tmp0 + tmp3;	/* phase 2 */
				tmp13 = tmp0 - tmp3;
				tmp11 = tmp1 + tmp2;
				tmp12 = tmp1 - tmp2;
	
				data[dataOff+0] = tmp10 + tmp11; /* phase 3 */
				data[dataOff+4] = tmp10 - tmp11;
	
				z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
				data[dataOff+2] = tmp13 + z1; /* phase 5 */
				data[dataOff+6] = tmp13 - z1;
	
				/* Odd part */
				tmp10 = tmp4 + tmp5; /* phase 2 */
				tmp11 = tmp5 + tmp6;
				tmp12 = tmp6 + tmp7;
	
				/* The rotator is modified from fig 4-8 to avoid extra negations. */
				z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
				z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
				z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
				z3 = tmp11 * 0.707106781; /* c4 */
	
				z11 = tmp7 + z3;	/* phase 5 */
				z13 = tmp7 - z3;
	
				data[dataOff+5] = z13 + z2;	/* phase 6 */
				data[dataOff+3] = z13 - z2;
				data[dataOff+1] = z11 + z4;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久精品性色| 91麻豆精品国产综合久久久久久| 成人激情小说网站| 亚洲成a人片在线不卡一二三区| 欧美精品一区二区在线观看| 欧美日韩高清不卡| 在线区一区二视频| 欧美在线不卡视频| 久久久亚洲精品一区二区三区| 精品视频一区三区九区| 欧美日韩一区二区欧美激情| 久久久蜜桃精品| 婷婷中文字幕一区三区| 男女男精品视频| 日韩精品一二三四| 美女免费视频一区| 精品一区二区国语对白| 九九**精品视频免费播放| 97se亚洲国产综合自在线| 色狠狠色噜噜噜综合网| 在线视频一区二区三| 久久久蜜桃精品| 美女mm1313爽爽久久久蜜臀| 欧美日韩国产精选| 亚洲一区二区五区| 毛片av一区二区| 欧美日免费三级在线| 综合久久国产九一剧情麻豆| 亚洲精品成人悠悠色影视| 香蕉加勒比综合久久| 国产sm精品调教视频网站| 97久久人人超碰| 中文字幕一区二区视频| 亚洲成人在线网站| 在线欧美日韩国产| 亚洲乱码日产精品bd| 99久久精品免费看| 亚洲男帅同性gay1069| 日日欢夜夜爽一区| 7777精品伊人久久久大香线蕉经典版下载 | 国产欧美精品一区二区色综合朱莉| 亚洲精品在线观看网站| 美腿丝袜亚洲三区| 久久久久国产精品免费免费搜索| 久久精品国产久精国产| 91麻豆国产自产在线观看| 正在播放一区二区| 美女在线观看视频一区二区| 欧美草草影院在线视频| 亚洲欧美日韩中文字幕一区二区三区 | 久88久久88久久久| 久久先锋影音av鲁色资源网| 亚洲激情综合网| 欧美日韩精品欧美日韩精品| 亚洲狠狠爱一区二区三区| 国产美女精品在线| 欧美性极品少妇| 中文字幕色av一区二区三区| 91视频在线观看免费| 亚洲午夜激情网站| 久久午夜羞羞影院免费观看| 成人开心网精品视频| 精品国产一区二区三区av性色 | 国产精品自拍一区| 91精品国产综合久久福利| 中文字幕一区在线观看视频| 91久久香蕉国产日韩欧美9色| 午夜精品免费在线| 久久青草国产手机看片福利盒子| 成人av免费观看| 亚洲成a人片综合在线| 国产日产欧美一区二区三区| 91成人免费电影| 国产在线乱码一区二区三区| 日韩欧美黄色影院| 美女高潮久久久| 日韩理论在线观看| 日韩欧美一级二级三级久久久| 成人av网站在线观看| 久久电影国产免费久久电影 | 3d成人h动漫网站入口| 国产91色综合久久免费分享| 午夜精品久久久久| 中文字幕日本乱码精品影院| 欧美mv日韩mv亚洲| 色菇凉天天综合网| 国产盗摄一区二区| 一区二区中文视频| 欧美大片国产精品| 欧洲一区二区三区在线| 成人免费毛片app| 卡一卡二国产精品 | 91福利区一区二区三区| 狠狠色丁香久久婷婷综合丁香| 亚洲精品视频免费观看| 欧美激情一二三区| 99精品久久99久久久久| 国产一区二区三区综合| 午夜视频在线观看一区| 一区二区三区精品在线| 欧美在线免费视屏| 99精品视频中文字幕| 国产精品一区二区在线观看不卡 | 久久影音资源网| 91精品久久久久久蜜臀| 欧美中文字幕一区二区三区 | 日韩精品国产精品| 亚洲国产乱码最新视频| 自拍偷拍国产精品| 中文字幕一区二区三区精华液| 国产色综合久久| 不卡影院免费观看| 国产精品一品视频| 国产福利一区二区三区在线视频| 久久99精品国产| 韩国欧美一区二区| 精品无码三级在线观看视频| 麻豆精品精品国产自在97香蕉| 日韩av中文在线观看| 亚洲国产精品二十页| 国产视频一区二区三区在线观看 | 国产目拍亚洲精品99久久精品| 日韩视频免费观看高清完整版在线观看 | 欧美视频在线不卡| 欧美性猛交xxxxxxxx| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 91日韩在线专区| 色狠狠av一区二区三区| 欧美自拍丝袜亚洲| 欧美日本国产一区| 欧美一区二区福利在线| 精品国产乱码久久久久久1区2区| 欧美va亚洲va在线观看蝴蝶网| 精品捆绑美女sm三区| 久久久777精品电影网影网 | 精品在线免费观看| 国产呦萝稀缺另类资源| 成人精品小蝌蚪| 日本道免费精品一区二区三区| 6080yy午夜一二三区久久| 日韩美女一区二区三区四区| 久久久久久免费毛片精品| 欧美国产精品一区二区| 亚洲一区免费观看| 久久精品99国产国产精| 国产精品一区免费在线观看| 91美女片黄在线观看91美女| 欧美日韩国产另类不卡| 久久综合五月天婷婷伊人| 日韩毛片视频在线看| 视频一区二区三区在线| 福利一区福利二区| 欧美日韩成人在线一区| 国产香蕉久久精品综合网| 亚洲欧美电影院| 久久av资源网| 91免费看片在线观看| 制服丝袜亚洲网站| 国产精品麻豆视频| 国产情人综合久久777777| 亚洲日本va午夜在线影院| 亚洲va在线va天堂| 国产成人亚洲综合a∨婷婷图片| 欧美性猛交xxxxxx富婆| 国产欧美日韩一区二区三区在线观看| 亚洲综合色视频| 国产精品一区二区果冻传媒| 欧美日韩在线电影| 欧美国产激情二区三区| 日本va欧美va瓶| 日本韩国欧美国产| 国产精品免费人成网站| 激情成人综合网| 欧美日韩精品久久久| 国产精品传媒入口麻豆| 亚洲欧美日韩国产手机在线 | 9191成人精品久久| 1000精品久久久久久久久| 麻豆成人91精品二区三区| 91久久线看在观草草青青| 日本一区二区免费在线| 精品中文字幕一区二区小辣椒| 欧美日韩一本到| 亚洲乱码中文字幕| 99久久er热在这里只有精品66| 久久久久一区二区三区四区| 美国av一区二区| 5月丁香婷婷综合| 亚洲成人av一区二区三区| 色欧美片视频在线观看| 欧美男人的天堂一二区| 亚洲天堂免费看| 成人中文字幕在线| 久久精品一区二区三区av| 久久99精品视频| 久久在线观看免费| 国产馆精品极品| 中文字幕免费在线观看视频一区| 国产成人精品免费| 国产欧美va欧美不卡在线|