Une classe qui 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
Source / Exemple :
<%
'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
%>
Conclusion :
Bien sur, il faut que aspimage soit présent sur votre serveur.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.