ClassicASP CxImage를 활용하여 ASP에서 썸네일 생성하기
페이지 정보
본문
CxImage는 C++로 만들어진 클래스로서 이미지를 불러오고 저장하고, 자르고, 변형하는 등 다양한 작업을 할 수 있습니다.
뿐만 아니라 JPG, PNG, GIF, TIFF 등 다양한 이미지 포맷을 지원합니다.
CxImage를 기반으로한 ASP에서 사용가능한 버전은 CxImage ActiveX wrapper 입니다.
CxImage의 wrapper 클래스라고 해야할까요.
asp에서 CxImage 오브젝트를 생성할수 있도록 해줍니다.
http://cximageatl.codeplex.com/ 에서 msi 파일을 다운로드하여 더블클릭한후 간단히 설치만 하면 됩니다.
설치 이후에는 아래와 같이 오브젝트를 생성하여 다양한 메소드를 활용할 수 있습니다.
Set objCxImage = Server.CreateObject("CxImageATL.CxImage")
<%
Function getMakeThumbNail(ImageFullPath, ImageWidth, ImageHeight, bStretch)
On Error Resume Next
'// 기본설정
If IsNull(ImageFullPath) Or Trim(ImageFullPath) = "" Then Exit Function
If IsNull(ImageWidth) Or Trim(ImageWidth) = "" Then ImageWidth = 100
If IsNull(ImageHeight) Or Trim(ImageHeight) = "" Then ImageHeight = 100
If ImageWidth <= 0 Then ImageWidth = 100
If ImageHeight <= 0 Then ImageHeight = 100
'//
Dim imgName : imgName = Mid( ImageFullPath, InstrRev(ImageFullPath, "\") + 1 ) '// 이미지명 추출
Dim imgPath : imgPath = Replace( ImageFullPath, "\" & imgName, "" ) '// 경로 추출
Dim onlyName : onlyName = Left( imgName, InStrRev(imgName, ".") - 1 ) '// 순수파일명 추출
Dim imgExt : imgExt = LCase( Mid(imgName, InStrRev(imgName, ".") + 1) ) '// 순수확장자 추출
Dim saveName : saveName = imgPath & "\" & onlyName & "_(" & ImageWidth & "x" & ImageHeight & ").jpg" '//& imgExt
'// 이미지형식체크
Dim ImageType : ImageType = 2
Select Case imgExt
Case "bmp", "wmf", "raw" : ImageType = 1
Case "gif" : ImageType = 2
Case "jpg" : ImageType = 3
Case "png" : ImageType = 4
Case "ico" : ImageType = 5
Case "tif" : ImageType = 6
Case "tga" : ImageType = 7
Case "pcx" : ImageType = 8
Case "jp2" : ImageType = 11
Case "jpc" : ImageType = 12
Case "jpx" : ImageType = 13
Case "pnm" : ImageType = 14
Case "ras" : ImageType = 15
Case Else : Exit Function
End Select
'//★(시작)썸네일 생성 작업
Dim objCxImage : Set objCxImage = Server.CreateObject("CxImageATL.CxImage") '// 개체생성
Call objCxImage.Load(ImageFullPath, ImageType) '// 원본 OPEN
Call objCxImage.IncreaseBpp(24)
'// S: Stretch
Dim ThumbWidth : ThumbWidth = ImageWidth '// 원본사이즈와 무관하게 사용자 지정비율에 맞게 강제 조정
Dim ThumbHeight : ThumbHeight = ImageHeight
'// 원본사이즈에 따른 적절한 비율조정
If bStretch = False Then
Dim SourceWidth : SourceWidth = CDbl(objCxImage.GetWidth()) '// 원본 가로사이즈
Dim SourceHeight : SourceHeight = CDbl(objCxImage.GetHeight()) '// 원본 세로사이즈
Dim sizeX : sizeX = SourceWidth / ImageWidth
Dim sizeY : sizeY = SourceHeight / ImageHeight
Dim ThumbNail_Size : ThumbNail_Size = sizeY
If sizeX > sizeY Then ThumbNail_Size = sizeX
If ThumbNail_Size < 1 Then ThumbNail_Size = 1
ThumbWidth = Int(SourceWidth / ThumbNail_Size) '// 비율에 맞게 조정된 가로사이즈
ThumbHeight = Int(SourceHeight / ThumbNail_Size) '// 비율에 맞게 조정된 세로사이즈
End If
'// E: Stretch
Call objCxImage.Resample(ThumbWidth, ThumbHeight, ImageType) '// 이미지변형
'// Save(saveFullPathName, ImageType)
Call ObjCxImage.Save(saveName, 3) '// 저장(종류에 관계없이 jpg 변환...파일명이같으면 덮어씌운다)
Set objCxImage = Nothing '// 개체종료
'// 리턴
If Err.Number <> 0 Then
getMakeThumbNail = ""
Else
getMakeThumbNail = Mid( saveName, InstrRev(saveName, "\") + 1 ) '// 썸네일 파일명 리턴
End If
On Error GoTo 0
End Function
thumb_file = getMakeThumbNail(storedir&FName , resizeWidth, resizeHeight,false)
%>
관련자료
http://trend21c.tistory.com/1134
http://ankyu.entersoft.kr/lecture/ASP/06_image04.asp
뿐만 아니라 JPG, PNG, GIF, TIFF 등 다양한 이미지 포맷을 지원합니다.
CxImage를 기반으로한 ASP에서 사용가능한 버전은 CxImage ActiveX wrapper 입니다.
CxImage의 wrapper 클래스라고 해야할까요.
asp에서 CxImage 오브젝트를 생성할수 있도록 해줍니다.
http://cximageatl.codeplex.com/ 에서 msi 파일을 다운로드하여 더블클릭한후 간단히 설치만 하면 됩니다.
설치 이후에는 아래와 같이 오브젝트를 생성하여 다양한 메소드를 활용할 수 있습니다.
Set objCxImage = Server.CreateObject("CxImageATL.CxImage")
<%
Function getMakeThumbNail(ImageFullPath, ImageWidth, ImageHeight, bStretch)
On Error Resume Next
'// 기본설정
If IsNull(ImageFullPath) Or Trim(ImageFullPath) = "" Then Exit Function
If IsNull(ImageWidth) Or Trim(ImageWidth) = "" Then ImageWidth = 100
If IsNull(ImageHeight) Or Trim(ImageHeight) = "" Then ImageHeight = 100
If ImageWidth <= 0 Then ImageWidth = 100
If ImageHeight <= 0 Then ImageHeight = 100
'//
Dim imgName : imgName = Mid( ImageFullPath, InstrRev(ImageFullPath, "\") + 1 ) '// 이미지명 추출
Dim imgPath : imgPath = Replace( ImageFullPath, "\" & imgName, "" ) '// 경로 추출
Dim onlyName : onlyName = Left( imgName, InStrRev(imgName, ".") - 1 ) '// 순수파일명 추출
Dim imgExt : imgExt = LCase( Mid(imgName, InStrRev(imgName, ".") + 1) ) '// 순수확장자 추출
Dim saveName : saveName = imgPath & "\" & onlyName & "_(" & ImageWidth & "x" & ImageHeight & ").jpg" '//& imgExt
'// 이미지형식체크
Dim ImageType : ImageType = 2
Select Case imgExt
Case "bmp", "wmf", "raw" : ImageType = 1
Case "gif" : ImageType = 2
Case "jpg" : ImageType = 3
Case "png" : ImageType = 4
Case "ico" : ImageType = 5
Case "tif" : ImageType = 6
Case "tga" : ImageType = 7
Case "pcx" : ImageType = 8
Case "jp2" : ImageType = 11
Case "jpc" : ImageType = 12
Case "jpx" : ImageType = 13
Case "pnm" : ImageType = 14
Case "ras" : ImageType = 15
Case Else : Exit Function
End Select
'//★(시작)썸네일 생성 작업
Dim objCxImage : Set objCxImage = Server.CreateObject("CxImageATL.CxImage") '// 개체생성
Call objCxImage.Load(ImageFullPath, ImageType) '// 원본 OPEN
Call objCxImage.IncreaseBpp(24)
'// S: Stretch
Dim ThumbWidth : ThumbWidth = ImageWidth '// 원본사이즈와 무관하게 사용자 지정비율에 맞게 강제 조정
Dim ThumbHeight : ThumbHeight = ImageHeight
'// 원본사이즈에 따른 적절한 비율조정
If bStretch = False Then
Dim SourceWidth : SourceWidth = CDbl(objCxImage.GetWidth()) '// 원본 가로사이즈
Dim SourceHeight : SourceHeight = CDbl(objCxImage.GetHeight()) '// 원본 세로사이즈
Dim sizeX : sizeX = SourceWidth / ImageWidth
Dim sizeY : sizeY = SourceHeight / ImageHeight
Dim ThumbNail_Size : ThumbNail_Size = sizeY
If sizeX > sizeY Then ThumbNail_Size = sizeX
If ThumbNail_Size < 1 Then ThumbNail_Size = 1
ThumbWidth = Int(SourceWidth / ThumbNail_Size) '// 비율에 맞게 조정된 가로사이즈
ThumbHeight = Int(SourceHeight / ThumbNail_Size) '// 비율에 맞게 조정된 세로사이즈
End If
'// E: Stretch
Call objCxImage.Resample(ThumbWidth, ThumbHeight, ImageType) '// 이미지변형
'// Save(saveFullPathName, ImageType)
Call ObjCxImage.Save(saveName, 3) '// 저장(종류에 관계없이 jpg 변환...파일명이같으면 덮어씌운다)
Set objCxImage = Nothing '// 개체종료
'// 리턴
If Err.Number <> 0 Then
getMakeThumbNail = ""
Else
getMakeThumbNail = Mid( saveName, InstrRev(saveName, "\") + 1 ) '// 썸네일 파일명 리턴
End If
On Error GoTo 0
End Function
thumb_file = getMakeThumbNail(storedir&FName , resizeWidth, resizeHeight,false)
%>
관련자료
http://trend21c.tistory.com/1134
http://ankyu.entersoft.kr/lecture/ASP/06_image04.asp
댓글목록
등록된 댓글이 없습니다.