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

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

?? canvas.asp

?? 管理登錄system 管理員:admin 密碼:admin888 數據庫鏈接文件: conn.asp 內容數據庫前臺鏈接文件 systemconn.asp 內容數據庫后臺鏈接文件 sy
?? ASP
?? 第 1 頁 / 共 3 頁
字號:
<%
' The font pack is included seperately so custom packs can be used
%>
<!--#include file="font.asp"-->
<%
' ***************************************************************
' ************************** ASPCanvas **************************
' ***************************************************************
'
'             Drawing and presentation object for ASP
'
'        Chris Read (aka Centurix/askdaquack/captainscript)
'
'    Thanks to Richard Deeming (www.trinet.co.uk) for improving 
'    the arc drawing algorithm
'    Thanks to Daniel Hasan for bezier curve adjustments
'    Thanks to Tony Stefano for his extra font packs
'
'                            Updated 23/02/2003
'
' ASPCanvas home: http://users.bigpond.net.au/mrjolly/
' ***************************************************************
'
' This file contains the following classes
' Canvas - Main GIF rendering class
' PixelStack - Used to store an order of pixels
' Point - A single pixel coord
' 
' This file contains the following utility functions
' MakeWord - Convert the value to a big-endian word
' MakeByte - Trim value to an 8 bit value
' Blue - Extract Blue value from RGB
' Green - Extract Green value from RGB
' Red - Extract Red value from RGB
' Low - Retrieve the low 8 bits from the value
' High - Retrieve the high 8 bits from the value
' ShiftLeft - Shift the value left x bits
' ShiftRight - Shift the value right x bits
'
' This class requires font.asp for text rendering support
'
' !!!Please read notes.htm for information on using this class!!!
'
' ***************************************************************
' ASPCanvas Copyright (c) 2002, Chris Read. All rights reserved.
' ***************************************************************
' Redistribution and use in source form, with or without modification, 
' are permitted provided that the following conditions are met:
'
' * Redistributions of source code must retain the above copyright notice, 
' this list of conditions and the following disclaimer.
'
' * All advertising materials mentioning features or use of this software 
' must display the following acknowledgement: This product includes software 
' developed by Chris Read with portions contributed by Richard Deeming, 
' Daniel Hasan and Tony Stefano.
'
' * The name of the author may not be used to endorse or promote products 
' derived from this software without specific prior written permission.
'
' THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 
' IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
' OF MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
' IN NO EVENT SHALL THE AUTHOR 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 SOFTWARE, EVEN IF ADVISED OF THE 
' POSSIBILITY OF SUCH DAMAGE.
'
' ***************************************************************

' Constants for this class
public const MAX_WIDTH		= 65535
public const MAX_HEIGHT		= 65535
public const INIT_WIDTH		= 20
public const INIT_HEIGHT	= 20
public const FLAG_DEBUG		= false
public const CURRENT_VER	= "01.00.05"
public const PI				= 3.14159265 ' Roughly

Class Canvas
' Public data
	public GlobalColourTable()
	public LocalColourTable()
	public ForegroundColourIndex ' Current foreground pen
	public BackgroundColourIndex ' Current background pen
	public TransparentColourIndex ' Current transparency colour index
	public UseTransparency ' Boolean for writing transparency
	public GIF89a ' Write GIF89a data
	public Comment ' Image comment 255 characters max
	
' Private data
	private sImage
	private lWidth
	private lHeight
	private iBits
	private lColourResolution
	private bSortFlag
	private bytePixelAspectRatio
	private byteSeperator
	private byteGraphicControl
	private byteEndOfImage
	private lLeftPosition
	private lTopPosition
	private lLocalColourTableSize
	private lGlobalColourTableSize
	private lReserved
	private bInterlaceFlag
	private bLocalColourTableFlag
	private bGlobalColourTableFlag
	private lCodeSize
	private bTest
	
' ***************************************************************************
' ************************ Raster management functions **********************
' ***************************************************************************

	public property get Version()
		Version = CURRENT_VER
	end property

	' Get a specific pixel colour
	public property get Pixel(ByVal lX,ByVal lY)
		if lX <= lWidth and lX > 0 and lY <= lHeight and lY > 0 then
			Pixel = AscB(MidB(sImage,(lWidth * (lY - 1)) + lX,1))
		else ' Out of bounds, return zero
			Pixel = 0
		end if
	end property
	
	' Set a specific pixel colour, look at speeding this up somehow...
	public property let Pixel(ByVal lX,ByVal lY,lValue)
		Dim sTemp
		Dim lOffset
		
		lX = int(lX)
		lY = int(lY)
		lValue = int(lValue)

		lOffset = lWidth * (lY - 1)

		if lX <= lWidth and lY <= lHeight and lX > 0 and lY > 0 then ' Clipping
			' Set the pixel value at this point
			sImage = LeftB(sImage,lOffset + (lX - 1)) & ChrB(lValue) & RightB(sImage,LenB(sImage) - (lOffset + lX))
		end if		
	end property

	' Read only width and height, to change these, resize the image
	public property get Width()
		Width = lWidth
	end property

	public property get Height()
		Height = lHeight
	end property

	public sub Replace(ByVal lOldColour,ByVal lNewColour)
		Dim lTempX
		Dim lTempY
		
		for lTempy = 1 to lHeight
			for lTempX = 1 to lWidth
				if Pixel(lTempX,lTempY) = lOldColour then
					Pixel(lTempX,lTempY) = lNewColour
				end if
			next
		next
	end sub

	' Copy a section of the picture from one location to the other
	public sub Copy(ByVal lX1,ByVal lY1,ByVal lX2,ByVal lY2,ByVal lX3,ByVal lY3)
		Dim sCopy
		Dim lTemp1
		Dim lTemp2
		Dim lStartX
		Dim lStartY
		Dim lFinishX
		Dim lFinishY
		Dim lWidth
		Dim lHeight
		
		if lX1 > lX2 then
			lStartX = lX2
			lFinishX = lX1
		else
			lStartX = lX1
			lFinishX = lX2
		end if
		
		if lY1 > lY2 then
			lStartY = lY2
			lFinishY = lY1
		else
			lStartY = lY1
			lFinishY = lY2
		end if
		
		sCopy = ""
		
		lWidth = lFinishX - lStartX + 1
		lHeight = lFinishY - lStartY + 1

		for iTemp2 = lStartY to lFinishY
			for iTemp1 = lStartX to lFinishX
				sCopy = sCopy & ChrB(Pixel(iTemp1,iTemp2))
			next
		next
		
		for iTemp2 = 1 to lHeight
			for iTemp1 = 1 to lWidth
				Pixel(lX3 + iTemp1,lY3 + iTemp2) = AscB(MidB(sCopy,(iTemp2 - 1) * lWidth + iTemp1,1))
			next
		next
	end sub

	' Non-recursive flood fill, VBScript has a short stack (200 bytes) so recursion won't work
	public sub Flood(ByVal lX,ByVal lY)
		Dim aPixelStack
		Dim objPixel
		Dim lOldPixel

		Set aPixelStack = New PixelStack
		
		aPixelStack.Push lX,lY
		
		lOldPixel = Pixel(lX,lY)
		
		while(aPixelStack.Size > 0)
			Set objPixel = aPixelStack.Pop
			
			if objPixel.X >= 1 and objPixel.X <= lWidth and objPixel.Y >= 1 and objPixel.Y <= lHeight then
				if Pixel(objPixel.X,objPixel.Y) <> ForegroundColourIndex and Pixel(objPixel.X,objPixel.Y) = lOldPixel then
					Pixel(objPixel.X,objPixel.Y) = ForegroundColourIndex
					
					aPixelStack.Push objPixel.X + 1,objPixel.Y
					aPixelStack.Push objPixel.X - 1,objPixel.Y
					aPixelStack.Push objPixel.X,objPixel.Y + 1
					aPixelStack.Push objPixel.X,objPixel.Y - 1
				end if
			end if
		wend
	end sub


	public sub Polygon(aX,aY,bJoin)
		Dim iTemp
		Dim lUpper

		if UBound(aX) <> UBound(aY) then exit sub
		if UBound(aX) < 1 then exit sub ' Must be more than one point
		
		lUpper = UBound(aX) - 1
		
		' Draw a series of lines from arrays aX and aY
		for iTemp = 1 to lUpper
			Line aX(iTemp - 1),aY(iTemp - 1),aX(iTemp),aY(iTemp)
		next
		
		if bJoin then
			Line aX(lUpper),aY(lUpper),aX(0),aY(0)
		end if
	end sub

	' Easy as, err, rectangle?
	public sub PieSlice(lX,lY,lRadius,sinStartAngle,sinArcAngle,bFilled)
		Dim sinActualAngle
		Dim sinMidAngle
		Dim lX2
		Dim lY2
		Dim iTemp
		
		Arc lX,lY,lRadius,lRadius,sinStartAngle,sinArcAngle
		AngleLine lX,lY,lRadius,sinStartAngle
		sinActualAngle = sinStartAngle + sinArcAngle
		if sinActualAngle > 360 then
			sinActualAngle = sinActualAngle - 360
		end if
		AngleLine lX,lY,lRadius,sinActualAngle
		' Now pick a start flood point at the furthest point from the center
		' Divide the arc angle by 2
		sinMidAngle = sinStartAngle + (sinArcAngle / 2)
		
		if sinMidAngle > 360 then
			sinMidAngle = sinMidAngle - 360
		end if

		if bFilled then
			for iTemp = 1 to lRadius - 1
				lY2 = CInt(lY + (Sin(DegreesToRadians(sinMidAngle)) * iTemp))
				lX2 = CInt(lX + (Cos(DegreesToRadians(sinMidAngle)) * iTemp))

				Flood lX2,lY2
			next
		end if
	end sub

	public sub Bezier(lX1,lY1,lCX1,lCY1,lCX2,lCY2,lX2,lY2,lPointCount)
		Dim sinT
		dim lX,lY,lLastX,lLastY
		dim sinResolution
		
		if lPointCount = 0 then exit sub
		
		sinResolution = 1 / lPointCount
		
		sinT = 0
		
		lLastX = lX1
		lLastY = lY1
		
		while sinT <= 1
			lX = int(((sinT^3) * -1 + (sinT^2) * 3 + sinT * -3 + 1) * lX1 + ((sinT^3) *  3 + (sinT^2) *-6 + sinT *  3) * lCX1 + ((sinT^3) * -3 + (sinT^2) * 3) * lCX2 + (sinT^3) * lX2)
			lY = int(((sinT^3) * -1 + (sinT^2) * 3 + sinT * -3 + 1) * lY1 + ((sinT^3) *  3 + (sinT^2) *-6 + sinT *  3) * lCY1 + ((sinT^3) * -3 + (sinT^2) * 3) * lCY2 + (sinT^3) * lY2)

			Line lLastX,lLastY,lX,lY
			
			lLastX = lX
			lLastY = lY
			
			sinT = sinT + sinResolution
		wend

		Line lLastX,lLastY,lX2,lY2
		
	end sub

	' ArcPixel Kindly donated by Richard Deeming (www.trinet.co.uk)
	Private Sub ArcPixel(lX, lY, ltX, ltY, sinStart, sinEnd)
		Dim dAngle
	    
	    If ltX = 0 Then
	        dAngle = Sgn(ltY) * PI / 2
	    ElseIf ltX < 0 And ltY < 0 Then
	        dAngle = PI + Atn(ltY / ltX)
	    ElseIf ltX < 0 Then
	        dAngle = PI - Atn(-ltY / ltX)
	    ElseIf ltY < 0 Then
	        dAngle = 2 * PI - Atn(-ltY / ltX)
	    Else
	        dAngle = Atn(ltY / ltX)
	    End If
	    
	    If dAngle < 0 Then dAngle = 2 * PI + dAngle

		' Compensation for radii spanning over 0 degree marker
		if sinEnd > DegreesToRadians(360) and dAngle < (sinEnd - DegreesToRadians(360)) then
			dAngle = dAngle + DegreesToRadians(360)
		end if
		
	    If sinStart < sinEnd And (dAngle > sinStart And dAngle < sinEnd) Then
	        'This is the "corrected" angle
	        'To change back, change the minus to a plus
	        Pixel(lX + ltX, lY + ltY) = ForegroundColourIndex
	    End If
	End Sub
	 
	' Arc Kindly donated by Richard Deeming (www.trinet.co.uk), vast improvement on the
	' previously kludgy Arc function.
	Public Sub Arc(ByVal lX, ByVal lY, ByVal lRadiusX, ByVal lRadiusY, ByVal sinStartAngle, ByVal sinArcAngle)
		' Draw an arc at point lX,lY with radius lRadius
		' running from sinStartAngle degrees for sinArcAngle degrees
		Dim lAlpha, lBeta, S, T, lTempX, lTempY
		Dim dStart, dEnd
	    
	    dStart = DegreesToRadians(sinStartAngle)
	    dEnd = dStart + DegreesToRadians(sinArcAngle)
	    
	    lAlpha = lRadiusX * lRadiusX
	    lBeta = lRadiusY * lRadiusY
	    lTempX = 0
	    lTempY = lRadiusY
	    S = lAlpha * (1 - 2 * lRadiusY) + 2 * lBeta
	    T = lBeta - 2 * lAlpha * (2 * lRadiusY - 1)
	    ArcPixel lX, lY, lTempX, lTempY, dStart, dEnd
	    ArcPixel lX, lY, -lTempX, lTempY, dStart, dEnd
	    ArcPixel lX, lY, lTempX, -lTempY, dStart, dEnd
	    ArcPixel lX, lY, -lTempX, -lTempY, dStart, dEnd

	    Do
	        If S < 0 Then
	            S = S + 2 * lBeta * (2 * lTempX + 3)
	            T = T + 4 * lBeta * (lTempX + 1)
	            lTempX = lTempX + 1
	        ElseIf T < 0 Then
	            S = S + 2 * lBeta * (2 * lTempX + 3) - 4 * lAlpha * (lTempY - 1)
	            T = T + 4 * lBeta * (lTempX + 1) - 2 * lAlpha * (2 * lTempY - 3)
	            lTempX = lTempX + 1
	            lTempY = lTempY - 1
	        Else
	            S = S - 4 * lAlpha * (lTempY - 1)
	            T = T - 2 * lAlpha * (2 * lTempY - 3)
	            lTempY = lTempY - 1
	        End If

	        ArcPixel lX, lY, lTempX, lTempY, dStart, dEnd
	        ArcPixel lX, lY, -lTempX, lTempY, dStart, dEnd
	        ArcPixel lX, lY, lTempX, -lTempY, dStart, dEnd
	        ArcPixel lX, lY, -lTempX, -lTempY, dStart, dEnd

	    Loop While lTempY > 0
	End Sub

	public sub AngleLine(ByVal lX,ByVal lY,ByVal lRadius,ByVal sinAngle)
		' Draw a line at an angle
		' Angles start from the top vertical and work clockwise
		' Work out the destination defined by length and angle
		Dim lX2
		Dim lY2
		
		lY2 = (Sin(DegreesToRadians(sinAngle)) * lRadius)
		lX2 = (Cos(DegreesToRadians(sinAngle)) * lRadius)
		
		Line lX,lY,lX + lX2,lY + lY2
	end sub

	' Bresenham line algorithm, this is pretty quick, only uses point to point to avoid the
	' mid-point problem
	public sub Line(ByVal lX1,ByVal lY1,ByVal lX2,ByVal lY2)
		Dim lDX
		Dim lDY
		Dim lXIncrement
		Dim lYIncrement
		Dim lDPr
		Dim lDPru
		Dim lP
		
		lDX = Abs(lX2 - lX1)
		lDY = Abs(lY2 - lY1)
		
		if lX1 > lX2 then
			lXIncrement = -1
		else
			lXIncrement = 1
		end if
		
		if lY1 > lY2 then
			lYIncrement = -1
		else
			lYIncrement = 1
		end if
		
		if lDX >= lDY then
			lDPr = ShiftLeft(lDY,1)
			lDPru = lDPr - ShiftLeft(lDX,1)
			lP = lDPr - lDX
			
			while lDX >= 0
				Pixel(lX1,lY1) = ForegroundColourIndex
				if lP > 0 then
					lX1 = lX1 + lXIncrement
					lY1 = lY1 + lYIncrement
					lP = lP + lDPru
				else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品一区二区久久 | 美女久久久精品| 捆绑调教一区二区三区| av电影天堂一区二区在线| 欧美一级高清片在线观看| 国产精品久久久久aaaa樱花 | 亚洲欧洲成人精品av97| 久久66热re国产| 欧美日本在线一区| 亚洲色图清纯唯美| 国产成人免费视频一区| 日韩免费观看高清完整版 | 久久嫩草精品久久久精品一| 香蕉影视欧美成人| 色av成人天堂桃色av| 国产精品色婷婷久久58| 狠狠网亚洲精品| 日韩一级黄色大片| 丝袜美腿高跟呻吟高潮一区| 色综合久久综合网97色综合 | 日韩精品在线一区二区| 性做久久久久久免费观看| 日韩一区二区精品葵司在线| 一区二区日韩电影| 色婷婷久久综合| 亚洲日本在线看| 色婷婷综合久久久久中文一区二区 | 亚洲成av人在线观看| 91麻豆精品在线观看| 18成人在线视频| hitomi一区二区三区精品| 国产精品热久久久久夜色精品三区| 九色|91porny| 久久久不卡网国产精品一区| 国产麻豆精品久久一二三| 久久久国际精品| 国产99久久久久| 日韩理论在线观看| 欧美性色欧美a在线播放| 午夜视频一区在线观看| 91精品黄色片免费大全| 激情综合五月天| 欧美国产精品专区| 色婷婷亚洲精品| 日韩精品欧美成人高清一区二区| 欧美一区二区免费观在线| 激情欧美日韩一区二区| 国产精品国产三级国产aⅴ无密码| 91色在线porny| 亚洲高清免费在线| 亚洲精品一区二区在线观看| 粉嫩av一区二区三区在线播放| 日韩美女视频一区二区| 欧美精品v日韩精品v韩国精品v| 久久成人免费网站| 国产精品久久毛片av大全日韩| 欧美中文字幕久久| 美脚の诱脚舐め脚责91| 国产精品免费免费| 欧美猛男男办公室激情| 国产精品亚洲视频| 亚洲已满18点击进入久久| 日韩亚洲欧美综合| 91在线精品一区二区| 日日摸夜夜添夜夜添精品视频 | 在线观看91av| 国产精品一区二区不卡| 亚洲国产日韩在线一区模特| 精品福利一区二区三区| 色香蕉久久蜜桃| 国产麻豆欧美日韩一区| 亚洲高清免费观看高清完整版在线观看| 日韩欧美一级精品久久| 91麻豆国产福利精品| 免费不卡在线观看| 亚洲精品高清在线观看| 欧美精品一区二区三区很污很色的| 91色视频在线| 国产经典欧美精品| 丝袜美腿亚洲一区| 亚洲乱码精品一二三四区日韩在线| 欧美电视剧在线观看完整版| 色狠狠色狠狠综合| 成人一二三区视频| 久久99精品久久只有精品| 一区二区三区欧美日韩| 亚洲一区二区偷拍精品| 国产欧美一区二区三区沐欲 | 亚洲成人中文在线| 18涩涩午夜精品.www| 久久久噜噜噜久久中文字幕色伊伊| 欧美色涩在线第一页| 99re热这里只有精品免费视频| 国产美女在线精品| 麻豆freexxxx性91精品| 夜夜操天天操亚洲| 亚洲同性gay激情无套| 亚洲国产精品精华液ab| www久久精品| 日韩欧美黄色影院| 91精品国产福利在线观看| 在线观看视频一区二区| 色综合久久综合网| 99re热视频精品| 91在线观看美女| 99精品欧美一区二区三区小说 | 蜜桃视频在线观看一区| 天天亚洲美女在线视频| 亚洲已满18点击进入久久| 玉米视频成人免费看| 亚洲久本草在线中文字幕| 自拍偷拍国产亚洲| 亚洲男人的天堂av| 一级中文字幕一区二区| 一区二区欧美国产| 亚洲一区在线电影| 婷婷综合在线观看| 日本不卡123| 久国产精品韩国三级视频| 极品少妇一区二区| 成人综合激情网| 99久久精品国产一区二区三区| 99re成人精品视频| 欧美在线free| 欧美一区二区三区小说| 日韩欧美123| 国产日产欧美精品一区二区三区| 国产日韩欧美a| 国产精品第一页第二页第三页| 亚洲欧洲日产国产综合网| 亚洲综合色成人| 蜜桃精品在线观看| 国产盗摄精品一区二区三区在线| 成人免费黄色在线| 欧美日韩中文一区| 精品乱码亚洲一区二区不卡| 国产亚洲一区字幕| 亚洲欧美日韩在线不卡| 日韩精彩视频在线观看| 国精产品一区一区三区mba桃花 | 日韩精品一级中文字幕精品视频免费观看 | 美女一区二区久久| 国产不卡一区视频| 日本韩国精品在线| 欧美大胆人体bbbb| 国产精品不卡在线| 五月婷婷久久丁香| 国产黄色精品网站| 精品视频一区三区九区| 一区二区三区国产| 免费成人av在线| 99国内精品久久| 日韩欧美电影一区| 亚洲免费在线播放| 久久99久久精品欧美| 91影视在线播放| 欧美mv日韩mv| 亚洲免费观看高清完整版在线| 日韩精品一区第一页| 成人av在线播放网站| 91精品国产全国免费观看| 国产精品久久久久桃色tv| 日精品一区二区三区| 不卡电影一区二区三区| 欧美一区二区久久久| 亚洲欧美日韩中文字幕一区二区三区 | 国产麻豆视频精品| 欧美喷水一区二区| 亚洲三级理论片| 丁香婷婷综合色啪| 日韩欧美专区在线| 亚洲一区二区三区小说| 不卡的av电影在线观看| 欧美成人午夜电影| 日本亚洲最大的色成网站www| 99国产精品国产精品毛片| 久久亚洲精品国产精品紫薇| 日韩va亚洲va欧美va久久| 欧美亚日韩国产aⅴ精品中极品| 中文字幕精品一区二区三区精品 | 成人va在线观看| 精品国产91乱码一区二区三区 | 国产精品久久久久毛片软件| 久久精品久久99精品久久| 欧美日韩国产bt| 亚洲一区二区三区不卡国产欧美| 99vv1com这只有精品| 国产精品污www在线观看| 国产高清不卡二三区| 国产午夜一区二区三区| 久久99精品久久久久久动态图 | 国产喷白浆一区二区三区| 国模大尺度一区二区三区| 欧美一区二区日韩| 蜜桃视频第一区免费观看| 69av一区二区三区| 秋霞午夜鲁丝一区二区老狼| 欧美浪妇xxxx高跟鞋交| 日韩国产精品久久| 欧美一区2区视频在线观看|