- <%
- 'Cette classe permet de générer une vignette de dimension (X,Y) maximale paramétrable,
- ' à partir d'une image JPEG ou BMP, via l'objet AspImage
- Class Vignette
-
- '***** Les variables privées
-
- 'L'objet AspImage
- Private Image
- 'Les tailles X et Y max de la vignette
- Private mvarX
- Private mvarY
-
- '***** Les méthodes privées
-
- 'Initialisation de la classe
- Private Sub Class_Initialize()
- Set Image = Server.CreateObject("AspImage.Image")
- End sub
-
- 'Destruction de la classe
- Private Sub Class_Terminate()
- Set Image=nothing
- End sub
-
- '***** Les propriétés publiques
- 'La taille X maxi de la vignette
- Public Property Let maxiX(X)
- mvarX=X
- End Property
-
- 'La taille Y maxi de la vignette
- Public Property Let maxiY(Y)
- mvarY=Y
- End Property
-
- '***** Les méthodes publiques
-
- 'Création de la vignette
- ' - reporigine: chemin virtuel du répertoire où se trouve l'image à transformer
- ' - nomorigine: nom de l'image à transformer
- ' - repvignette: chemin virtuel du répertoire où l'on sauvegarde la vignette
- ' - nomvignette: nom de la vignette obtenue
- Public Function CreeVignette(reporigine,nomorigine,repvignette,nomvignette)
- Dim dX 'La valeur réelle calculée de X pour la vignette
- Dim dY 'La valeur réelle calculée de Y pour la vignette
- Dim imgX 'La valeur X de l'image à transformer
- Dim imgY 'La valeur Y de l'image à transformer
-
- Image.LoadImage Server.MapPath(reporigine & "/" & nomorigine)
- imgX=Image.MaxX
- imgY=Image.MaxY
- 'Si la largeur ou la hauteur depasse la taille maximale
- if ((imgX >= mvarX) or (imgY >= mvarY)) then
- ' Si la largeur et la hauteur depassent la taille maximale
- if ((imgX >= mvarX) and (imgY >= mvarY)) then
- 'On cherche la plus grande valeur
- if (imgX>imgY) then
- dX = mvarX
- ' On calcule dY proportionnellement
- dY = (imgY * dX) / imgX
- else
- dY = mvarY
- ' On Calcule dX proportionnellement
- dX = (imgX * dY) / imgY
- end if
- else
- if ((imgX > mvarX) and (imgY < mvarY)) then
- ' Si X depasse la taille maximale
- dX = mvarX
- ' On calcule dY proportionnellement
- dY = (imgY * dX) / imgX
- else
- if ((imgX < mvarX) and (imgY > mvarY)) then
- ' Si Y depasse la taille maximale
- dY = mvarY
- ' On calcule X proportionnellement
- dX = (imgX * dY) / imgY
- end if
- end if
- end if
- end if
- 'On redimensionne l'image en fonction des valeurs calculées
- Image.DPI=72
- Image.ImageFormat=1
- Image.ResizeR dX, dY
- 'On sauvegarde la vignette
- Image.FileName = Server.MapPath(repvignette & "/" & nomvignette)
- if Image.SaveImage then
- CreeVignette=""
- else
- CreeVignette=Image.Error
- end if
- End Function
- End class
- %>
-
<%
'Cette classe permet de générer une vignette de dimension (X,Y) maximale paramétrable,
' à partir d'une image JPEG ou BMP, via l'objet AspImage
Class Vignette
'***** Les variables privées
'L'objet AspImage
Private Image
'Les tailles X et Y max de la vignette
Private mvarX
Private mvarY
'***** Les méthodes privées
'Initialisation de la classe
Private Sub Class_Initialize()
Set Image = Server.CreateObject("AspImage.Image")
End sub
'Destruction de la classe
Private Sub Class_Terminate()
Set Image=nothing
End sub
'***** Les propriétés publiques
'La taille X maxi de la vignette
Public Property Let maxiX(X)
mvarX=X
End Property
'La taille Y maxi de la vignette
Public Property Let maxiY(Y)
mvarY=Y
End Property
'***** Les méthodes publiques
'Création de la vignette
' - reporigine: chemin virtuel du répertoire où se trouve l'image à transformer
' - nomorigine: nom de l'image à transformer
' - repvignette: chemin virtuel du répertoire où l'on sauvegarde la vignette
' - nomvignette: nom de la vignette obtenue
Public Function CreeVignette(reporigine,nomorigine,repvignette,nomvignette)
Dim dX 'La valeur réelle calculée de X pour la vignette
Dim dY 'La valeur réelle calculée de Y pour la vignette
Dim imgX 'La valeur X de l'image à transformer
Dim imgY 'La valeur Y de l'image à transformer
Image.LoadImage Server.MapPath(reporigine & "/" & nomorigine)
imgX=Image.MaxX
imgY=Image.MaxY
'Si la largeur ou la hauteur depasse la taille maximale
if ((imgX >= mvarX) or (imgY >= mvarY)) then
' Si la largeur et la hauteur depassent la taille maximale
if ((imgX >= mvarX) and (imgY >= mvarY)) then
'On cherche la plus grande valeur
if (imgX>imgY) then
dX = mvarX
' On calcule dY proportionnellement
dY = (imgY * dX) / imgX
else
dY = mvarY
' On Calcule dX proportionnellement
dX = (imgX * dY) / imgY
end if
else
if ((imgX > mvarX) and (imgY < mvarY)) then
' Si X depasse la taille maximale
dX = mvarX
' On calcule dY proportionnellement
dY = (imgY * dX) / imgX
else
if ((imgX < mvarX) and (imgY > mvarY)) then
' Si Y depasse la taille maximale
dY = mvarY
' On calcule X proportionnellement
dX = (imgX * dY) / imgY
end if
end if
end if
end if
'On redimensionne l'image en fonction des valeurs calculées
Image.DPI=72
Image.ImageFormat=1
Image.ResizeR dX, dY
'On sauvegarde la vignette
Image.FileName = Server.MapPath(repvignette & "/" & nomvignette)
if Image.SaveImage then
CreeVignette=""
else
CreeVignette=Image.Error
end if
End Function
End class
%>