홈페이지 전면에 상품을 진열할 때에는 일반적으로 썸네일을 사용하며, 클릭하시면 큰 이미지로 보실 수 있습니다.
썸네일에는 두 가지 문제가 있습니다.
1. 하나의 큰 이미지만 배경으로 전송하는 경우 썸네일을 표시할 때 큰 이미지의 너비와 높이만 고정됩니다. 이로 인해 썸네일이 변형될 뿐만 아니라 페이지 액세스 속도도 느려집니다.
2. 배경이 매번 2장의 사진을 업로드한다면, 큰 사진 1장과 썸네일 1장입니다. 이 경우 1에서는 문제가 없지만, 백엔드 직원에게는 많은 폐를 끼치게 됩니다. 백엔드 직원이 썸네일을 처리하고 생성하는 방법을 반드시 알 수는 없기 때문에 빠르게 처리할 수 있더라도 시간이 낭비됩니다.
다음 코드는 AspJpeg 구성 요소를 사용하여 실제로 너비와 높이 비율에 따라 축소판을 생성하는 데 도움이 될 수 있습니다.
AspJpeg 구성요소 다운로드: http://www.aspjpeg.com/download.html
AspJpeg 구성요소 사용법: http://www.mydw.cn/tech/1/766.html
등록 코드: 48958-77556-02411
<%
희미한 원래 경로
sOriginalPath = "이미지/1.gif"
'원본 이미지 경로는 일반적으로 업로드 후에 얻거나
Dim 데이터베이스에서 얻습니다. sReturnInfo, sSmallPath '함수는 정보, 썸네일 경로를 반환합니다.
sReturnInfo = BuildSmallPic(sOriginalPath, "images", 100, 100)
Response.Write "반품 정보:" & sReturnInfo & "<br/>"
InStr(sReturnInfo, "Error_") <= 0이면
sSmallPath = sReturnInfo '반환 정보는 다음과 같습니다.
'데이터베이스에 sSmallPath 쓰기
'
또 다른
Response.Write "자세한 오류:"
케이스 반품 정보 선택
사례 "Error_01"
Response.Write "<font color='red'>AspJpeg 구성 요소를 생성하지 못했습니다. 구성 요소가 올바르게 설치 및 등록되지 않았습니다</font>" & "<br/>"
사례 "Error_02"
Response.Write "<font color='red'>원본 이미지가 존재하지 않습니다. s_OriginalPath 매개변수에 전달된 값을 확인하세요</font>" & "<br/>"
사례 "Error_03"
Response.Write "<font color='red'>썸네일 저장에 실패했습니다. 가능한 이유: 썸네일 저장을 위한 기본 주소가 존재하지 않습니다. s_OriginalPath 매개변수에 전달된 값을 확인하세요. 디렉터리에 대한 쓰기 권한이 없습니다. 디스크 공간이 부족합니다.< /글꼴>" & "<br/>"
사례 "Error_Other"
응답."<font color='red'>알 수 없는 오류</font>" 및 "<br/>" 쓰기
선택 종료
응답.종료
%>
이면 종료
원본 파일 이름: <%=sOriginalPath%><br/>
썸네일 파일 이름: <%=sSmallPath%><br/>
원본 이미지: <img src='<%=sOriginalPath%>' border=0><br/><br/>
썸네일: <img src='<%=sSmallPath%>' border=0>
<%
'================================================ = ===============
'작성자: laifangsong QQ:25313644
'기능: 지정된 사진을 기반으로 썸네일 생성
'참고: 아래에 언급된 "경로"는 모두 이 함수를 호출하는 파일과 관련된 상대 경로입니다.
'매개변수:
' s_OriginalPath: 원본 이미지 경로 예: Images/image1.gif
' s_BuildBasePath: "/"로 끝나는지 여부에 관계없이 이미지를 생성하기 위한 기본 경로입니다(예: Images 또는 Images/).
' n_MaxWidth: 이미지의 최대 너비를 생성합니다.
' 전경에 표시되는 썸네일이 100*100인 경우 여기서는 n_MaxWidth=100, n_MaxHeight=100입니다.
' n_MaxHeight: 이미지의 최대 높이를 생성합니다.
'반환 값:
'생성된 썸네일 이미지의 경로를 반환합니다.
'오류 처리:
' 함수 실행 중 오류가 발생하면 오류 코드가 반환됩니다. 오류 코드는 "Error"로 시작됩니다.
' Error_01: AspJpeg 구성 요소를 생성하지 못했습니다. 구성 요소가 올바르게 설치 및 등록되지 않았습니다.
' 오류_02: 원본 이미지가 존재하지 않습니다. s_OriginalPath 매개변수에 전달된 값을 확인하세요.
' 오류_03: 썸네일 저장에 실패했습니다. 가능한 이유: 썸네일 저장 기본 주소가 없습니다. s_OriginalPath 매개변수에 전달된 값을 확인하세요. 디스크 공간이 부족합니다.
' Error_Other: 알 수 없는 오류
'호출 예:
'Dim sSmallPath' 썸네일 경로
' sSmallPath = BuildSmallPic("images/image1.gif", "images", 100, 100)
'================================================ = ===============
함수 BuildSmallPic(s_OriginalPath, s_BuildBasePath, n_MaxWidth, n_MaxHeight)
Err.Clear
오류 발생 시 다음 재개
'컴포넌트가 등록되었는지 확인
DimAspJpeg
AspJpeg = Server.Createobject("Persits.Jpeg") 설정
Err.Number <> 0이면
Err.Clear
BuildSmallPic = "Error_01"
종료 기능
End If
'원본 이미지가 존재하는지 확인
Dims_MapOriginalPath
s_MapOriginalPath = 서버.MapPath(s_OriginalPath)
AspJpeg.Open s_MapOriginalPath '원본 그림 열기
Err.Number <> 0이면
Err.Clear
BuildSmallPic = "Error_02"
종료 기능
End If
'썸네일 너비와 높이를 비례적으로 가져옵니다.
Dim n_OriginalWidth, n_OriginalHeight '원본 이미지의 너비와 높이
Dim n_BuildWidth, n_BuildHeight '썸네일 너비, 높이
희미한 div1, div2
희미한 n1, n2
n_OriginalWidth = AspJpeg.Width
n_OriginalHeight = AspJpeg.Height
div1 = n_OriginalWidth / n_OriginalHeight
div2 = n_OriginalHeight / n_OriginalWidth
n1 = 0
n2 = 0
n_OriginalWidth > n_MaxWidth이면
n1 = n_OriginalWidth / n_MaxWidth
또 다른
n_BuildWidth = n_OriginalWidth
종료 조건
n_OriginalHeight > n_MaxHeight이면
n2 = n_OriginalHeight / n_MaxHeight
또 다른
n_BuildHeight = n_OriginalHeight
종료 조건
n1 <> 0 또는 n2 <> 0이면
n1 > n2이면
n_BuildWidth = n_MaxWidth
n_BuildHeight = n_MaxWidth * div2
또 다른
n_BuildWidth = n_MaxHeight * div1
n_BuildHeight = n_MaxHeight
종료 조건
End If
'생성할 너비와 높이를 지정합니다.
AspJpeg.Width = n_BuildWidth
AspJpeg.Height = n_BuildHeight
'--썸네일 저장 시작--
Dim pos, s_OriginalFileName, s_OriginalFileExt '위치, 원본 파일명, 원본 파일 확장자
pos = InStrRev(s_OriginalPath, "/") + 1
s_OriginalFileName = Mid(s_OriginalPath, pos)
pos = InStrRev(s_OriginalFileName, ".")
s_OriginalFileExt = Mid(s_OriginalFileName, pos)
Dim s_MapBuildBasePath, s_MapBuildPath, s_BuildFileName '썸네일 절대 경로, 썸네일 파일 이름
Dim s_EndFlag '작은 이미지 파일 이름 종료 태그 예: 큰 이미지 파일 이름이 "image1.gif"이고 종료 태그가 "_small"인 경우 작은 이미지 파일 이름은 "image1_small.gif"입니다.
If Right(s_BuildBasePath, 1) <> "/" 그러면 s_BuildBasePath = s_BuildBasePath & "/"
s_MapBuildBasePath = 서버.MapPath(s_BuildBasePath)
s_EndFlag = "_small" '사진 크기를 구별할 수 있는 한 사용자 정의 가능
s_BuildFileName = 바꾸기(s_OriginalFileName, s_OriginalFileExt, "") & s_EndFlag & s_OriginalFileExt
s_MapBuildPath = s_MapBuildBasePath & "" & s_BuildFileName
AspJpeg.Save s_MapBuildPath '저장
Err.Number <> 0이면
Err.Clear
BuildSmallPic = "Error_03"
종료 기능
종료 조건
'--썸네일을 디스크에 저장
-- '인스턴스 로그아웃
AspJpeg = 없음 설정
Err.Number <> 0이면
BuildSmallPic = "Error_Other"
Err.Clear
종료 조건
BuildSmallPic = s_BuildBasePath & s_BuildFileName
함수 종료
%>