인터넷에서 썸네일을 생성 할 수있는 많은 ASP 구성 요소가 있습니다. 가상 공간이 새 구성 요소 등록을 지원하지 않으면 웹 사이트가 광택을 잃어 버렸다고 생각할 수 있습니다. 구성 요소없이 썸네일을 생성하는 단계를 알고 있습니까? 잘못된 새로운 기술 채널의 편집자와 함께 배우자!
구성 요소없이 썸네일을 생성합니다
먼저 기본 사항을 살펴 보겠습니다. 우선, 다음 코드가 페이지에 표시되어 있음을 알고 있습니다.
SRC는 이미지 경로이며, 테두리는 이미지의 가장자리 너비, 너비는 이미지의 길이이며 높이는 이미지의 높이입니다. 썸네일의 생성은 실제로 원래 크기로 확장됩니다. 그러나 일반적으로 왜곡을 최소화하기 위해서는 확장으로 확장 할 것입니다. 따라서 그림의 길이와 너비를 얻는 것은 썸네일을 생성하는 데 초점이됩니다.
구성 요소가없는 썸네일 생성을 작성하는 단계는 다음과 같습니다.
1. 구성 요소없이 이미지 크기를 가져옵니다
ASP를 처음 배웠을 때 구성 요소없이 이미지 크기를 얻기 위해 ASCII 코드를 사용하여 기사를 보았습니다. 나중에 나는 그것을 시도하고 JPG와 같은 이미지의 크기를 얻었을 때 온라인에서 그것을 확인하고 많은 웹 사이트 가이 프로그램을 다시 인쇄한다는 것을 알았지 만 그중 어느 누구도이 프로그램의 결함을 지적하지 않았지만 결함에 대한 해결책은 물론이 프로그램의 결함을 지적하지 않았습니다. 나중에 나는 Googleg를 가서 마침내 이미지 크기를 얻기 위해 adodb.stream의 사용을 소개하는 기사를 찾았습니다. 소개 된 방법에 따라 내부 코드를 수정하여 시도했습니다. 효과는 정말 좋습니다. 이제 나는 그것을 꺼내서 당신과 공유 할 것입니다.
adodb.stream을 사용하여 공통 클래스를 얻으십시오 <이미지 크기의%
'////////////// GPS : 사진 크기 받기 /////////////
'/////////////////////////////
'////////// Leon (Xinqing)에 의해 인용 (2005 년 8 월 11 일 //////////////////////////////////////////////4)
클래스 GPS
희미한 ASO
private sub class_initialize
set aso = createobject ( "adodb.stream")
aso.mode = 3
aso.type = 1
ASO. OPEN
종료 서브
개인 sub class_terminate
ASO = 아무것도 설정하지 않습니다
종료 서브
개인 기능 Bin2str (빈)
Dim I, Str
i = 1에서 lenb (bin)의 경우
clow = midb (bin, i, 1)
ASCB (Clow) <128 인 경우
str = str & chr (ASCB (clow))
또 다른
i = i+1
i <= lenb (bin)이면 str = str & chr (ascw (midb (bin, i, 1) & clow))
끝 If
다음
bin2str = str
엔드 기능
개인 기능 Num2str (Num, Base, Lens)
'GPS (2005-8-11)
딤토
ret = ""
while (num> = base)
ret = (num mod base) & ret
num = (num -num mod base)/base
향하게 하다
num2str = right (문자열 (렌즈, "0") 및 Num & ret, 렌즈)
엔드 기능
개인 기능 str2num (str, base)
'GPS (2005-8-11)
딤토
ret = 0
i = 1 to len (str)의 경우
ret = ret *base + cint (mid (str, i, 1))
다음
str2num = ret
엔드 기능
개인 기능 binval (bin)
'GPS (2002-8-11)
딤토
ret = 0
i = lenb (빈)에서 1 단계 -1
ret = ret *256 + ASCB (Midb (bin, i, 1))
다음
binval = ret
엔드 기능
개인 기능 binval2 (bin)
'GPS (2002-8-11)
딤토
ret = 0
i = 1에서 lenb (bin)의 경우
ret = ret *256 + ASCB (Midb (bin, i, 1))
다음
binval2 = ret
엔드 기능
'/// 다음은 호출 코드입니다 ///
함수 getImagesize (filespec)
'GPS (2002-8-11)
Dim Ret (3)
aso.loadfromfile (filespec)
bflag = aso.read (3)
Case Hex (Binval (bflag)) 선택
사례 "4E5089":
aso.read (15)
ret (0) = "png"
ret (1) = binval2 (aso.read (2))
aso.read (2)
ret (2) = binval2 (aso.read (2))
사례 "464947":
aso.read (3)
ret (0) = "gif"
ret (1) = binval (aso.read (2))
ret (2) = binval (aso.read (2))
사례 "535746":
aso.read (5)
bindata = aso.read (1)
sconv = num2str (ASCB (bindata), 2,8)
nbits = str2num (왼쪽 (sconv, 5), 2)
sconv = mid (sconv, 6)
while (len (sconv)
sconv = sconv & num2str (ASCB (bindata), 2,8)
향하게 하다
ret (0) = "swf"
ret (1) = int (abs (str2num (sconv, 1*nbits+1, nbits), 2) -Str2num (MID (SCONV, 0*nbits+1, nbits), 2)/20)
ret (2) = int (abs (str2num (sconv, 3*nbits+1, nbits), 2) -Str2num (MID (SCONV, 2*nbits+1, nbits), 2)/20)
"ffd8ff"사례 :
하다
do : p1 = binval (aso.Read (1)) : 루프는 aso.eos가 아닌 p1 = 255입니다
P1> 191 및 P1 <196 인 경우 종료 aso.read (binval2 (aso.read (2)) -2)
do : p1 = binval (aso.read (1)) : 루프는 aso.eos가 아닌 p1 <255입니다
사실이지만 루프
aso.read (3)
ret (0) = "jpg"
ret (2) = binval2 (aso.read (2))
ret (1) = binval2 (aso.read (2))
다른 경우 :
왼쪽 (bin2str (bflag), 2) = "bm"라면
aso.read (15)
ret (0) = "bmp"
ret (1) = binval (aso.read (4))
ret (2) = binval (aso.read (4))
또 다른
ret (0) = ""
끝 If
종료 선택
ret (3) = "width =" "" "& ret (1) &" "" "높이 =" ""& ret (2) & "" "" ""
getImagesize = ret
엔드 기능
수업 종료
%>
위의 코드를 복사하여 GPS.ASP 파일을 생성하여 이미지 크기를 얻을 수있는 구성 요소가없는 일반 클래스가 정상입니다.
2. 이미지 경로를 얻으십시오
하나 이상의 그림과 그림을 분류 된 방식으로 저장해야하므로 데이터베이스에 그림의 상대 경로를 저장하는 필드 imgurl을 설계했습니다. 업로드 된 모든 이미지를 이미지라는 폴더에 넣었습니다 (구성 요소없이 이미지를 업로드하는 방법은 많이 말하지 않습니다). 이제 showimg.asp 페이지를 디자인하여 썸네일 및 관련 정보를 표시하겠습니다. 특정 디자인은 다음과 같습니다.
그림:
이미지 형식 :
이미지 크기 :
이미지 크기 :
클릭 수 :
아래에서는 이미지의 절대적인 경로를 얻습니다. 코드는 다음과 같습니다.
<%
'///// showimg.asp ////의 절대 경로를 얻으십시오.
희미한 카파일
curfile = server.mappath (request.servervariables ( "path_info"))
Dim Curfilename, Filename
'//// 이미지의 상대 경로 (데이터베이스에 저장)
cufilename = rs ( "imgurl")
'///// showimg.asp는 이미지와 동일한 디렉토리에 있기 때문에 instrev를 사용하여 이미지의 경로를 얻습니다. ////
filename = 왼쪽 (Curfile, Instrev (curfile, "/")) & cufilename
'//// 생성 GPS 엔티티 ////
희미한 getpicsize
GetPicsize = 새로운 GPS를 설정합니다
set fs = server.createobject ( "scripting.filesystemobject")
'//// 이미지 유형 얻기 /////
Dim PicsuffixName
picsuffixname = fs.getextensionName (filename)
DIM PD '// 그림 치수
희미한 pwidth, Pheight
Case PicsuffixName을 선택하십시오
사례 "gif", "bmp", "jpg", "png":
'///// 이미지 크기를 얻으려면 GPS 일반 클래스에서 getImagesize 기능을 호출하십시오 /////
pd = getPicsize.getImagesize (filename)
pwidth = pd (1) '// 그림 너비를 얻습니다
Pheight = PD (2) '// 이미지 높이를 얻습니다
"SWF"사례
pd = getPicsize.getImagesize (filename)
pwidth = pd (1) '// 플래시 너비를 얻습니다
Pheight = PD (2) '// 플래시 높이를 얻습니다
다른 경우
종료 선택
fs = 아무것도 설정하지 않습니다
GetPicsize = 아무것도 설정하지 않습니다
%>
위의 코드를 복사하십시오 *4) >>
위는 괜찮습니다!
물론 어떤 사람들은 Path_info를 사용할 필요가 없다고 말할 수 있습니다. server.mappath ()를 직접 사용할 수 있습니다. 하하, 모두 자신의 선호도가 있습니다. 주된 이유는 PATH_INFO를 사용하여 FSO의 일부 기능을 구현할 수 있지만 Server.Mappath ()로 수행하지 않았으므로 사용하고 있습니다.
3. 썸네일 크기를 정의하십시오
코드 의이 부분은 자신의 의견과 다릅니다. 우선, 우리는 썸네일 디스플레이의 크기 범위를 지정해야합니다. 예 : 300x260, 코드는 다음과 같이 작성할 수 있습니다.
<%
희미한 pxwidth, pxheight
Dim PP '// 비율
pwidth = 0 또는 pwidth = ""인 경우
pxwidth = 0
pxheight = 0
또 다른
pp = formatnumber (pwidth/pheight, 2) '// add-width 비율
끝 If
pwidth> = Pheight라면
pwidth> = 300 인 경우
pxwidth = 300
pxheight = FormatNumber (300/pp, 0)
또 다른
pxwidth = pwidth
pxheight = Pheight
끝 If
또 다른
Pheight> = 260이면
pxheight = 260
pxwidth = formatnumber (260*pp, 0)
또 다른
pxwidth = pwidth
pxheight = Pheight
끝 If
끝 If
%>
두 번째 단계 직후 위의 코드를 작성하십시오. 호출시 코드는 다음과 같습니다.
Border = "0"너비 = <%= pxwidth%> 높이 = <%= pxheight%>>
이미지 형식은 <%= picsuffixName%>를 사용할 수 있으며 이미지 크기는 다음과 같이 쓸 수 있습니다.
<%
응답. pxwidth & "x"& pxheight
%>
이미지 크기는 fso.getfilesize (filename)를 사용하여 달성 할 수 있지만, 클릭 수는 SQL 문을 사용하여 간단히 달성 할 수 있으므로 특정 인코딩을 더 이상 설명하지 않습니다.
이러한 방식으로 구성 요소가없는 썸네일 프로그램이 작성되며, 이는 약간 현명 할 수 있지만 방법을 마스터 할 수있는 한 크게 향상됩니다. >
위의 기사는 구성 요소없이 썸네일을 생성하는 작업 방법에 관한 것입니다. 나는 모든 사람이 특정한 이해를 가지고 있다고 생각합니다. 더 많은 기술 정보를 알고 싶다면 잘못된 새로운 기술 채널에 계속주의를 기울이십시오!