GÉNÉRER UNE VIGNETTE À PARTIR D'UNE IMAGE JPEG/BMP, VIA L'OBJET ASPIMAGE

cs_pereg Messages postés 2 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 16 août 2004 - 16 août 2004 à 11:11
monsieurtruc Messages postés 15 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 7 février 2013 - 27 janv. 2006 à 11:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25331-generer-une-vignette-a-partir-d-une-image-jpeg-bmp-via-l-objet-aspimage

monsieurtruc Messages postés 15 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 7 février 2013
27 janv. 2006 à 11:43
Salut,

ça marche plutôt bien, mais je cherche à créer deux images en même temps.
C'est à dire une basse def et une vignette.

Est-ce que le composant le gère ?

Merci
fr64 Messages postés 32 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 4 avril 2007
6 oct. 2004 à 17:38
Le composant d'évaluation que l'on récupére sur le site du fournisseur est toujours anti daté. Pour faire des tests, il faut reculer la date du serveur.
ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009
6 oct. 2004 à 17:10
http://82.228.80.72/tests/upload/index.asp

voila c sur mon serveur et mon code ( c long car en fait 'j'up le fichier puis j'essai de le redim :

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>


<%

'------------------------------------------------------------
Public sub UploaderFichier(mySmartUpload, strAdresse)
'------------------------------------------------------------
'--- upload fichier a une adresse donnée
'------------------------------------------------------------

Dim Fichier

'On error resume next'si erreur on continue quand meme

'mySmartUpload.MaxFileSize = 5000' Taille maximale autorisée : 5 Ko
'mySmartUpload.AllowedFilesList = "gif,jpg"' Upload autorisé sur les gif et jpg uniquement

mySmartUpload.Upload' Selectionne chaque fichier

For each Fichier In mySmartUpload.files
If not Fichier.IsMissing Then

strFichier = Fichier.FileName
Fichier.SaveAs(strAdresse & "" & strFichier)' Upload du fichier

End If
Next

if err.number =0 then 'test si erreur
direc= "
"'si pas erreur alors on affichera l'image dl
else
direc="une erreur c produite : "& strAdresse & "" & strFichier &"
"'si erreur alors on affiche l'erreur
end if

response.Write(direc)

Image_S strAdresse, strFichier

End sub

Public Sub Image_S(strAdresse, strFichier)

Dim Image
Dim nImgX, nImgX_S
Dim nImgY, nImgY_S

on error goto 0


'--- Création de l'objet image
Set Image = Server.CreateObject("AspImage.Image")
response.Write("Objet
")

'--- Chargement de l'image
Image.LoadImage strAdresse & "" & strFichier
nImgX=Image.MaxX
nImgY=Image.MaxY
response.Write("Image : " & strAdresse & "" & strFichier & "
X:" & nImgX & " Y:" & nImgY & "
")

'--- Calcul des dimension
nImgX_S=200
nImgY_S=int((200*nImgY)/nImgX)
response.Write("Dimension X:" & nImgX_S & " Y:" & nImgY_S & "
")

'--- On redimensionne l'image en fonction des valeurs calculées
Image.DPI=72
Image.ImageFormat=1
Image.ResizeR nImgX_S, nImgY_S
response.Write("Redim
")


'--- On sauvegarde
Image.FileName = strAdresse & "" & "small_" & strFichier
response.Write("Adresse : " & strAdresse & "" & "small_" & strFichier & "
")

if Image.SaveImage then 'test si erreur
direc= "
"'si pas erreur alors on affichera l'image dl
else
direc="une erreur c produite : "& Image.Error &"
"'si erreur alors on affiche l'erreur
end if
response.Write("Save : " & strAdresse & "" & "small_" & strFichier & "
")

response.Write(direc)
Set image=nothing
End sub


'------------------------------------------------------------------------------------------------------------------

if request.queryString("Action")="Upload" then
response.expires=0 'ça je sais pas
response.buffer=true'ça je sais pas non plus


On error resume next' Gérer les erreur
' Variables

Dim mySmartUpload 'ce qui permet d'up le fichier

Dim strAdr 'Adresse du fichier

Set mySmartUpload = Server.CreateObject("aspSmartUpload.SmartUpload")' Création de l'Objet







strAdr=Server.MapPath("\Tests\Upload")'à changer pour installer ou vous le voulez

'--- Upload les fichiers à l'adresse strAdr
UploaderFichier mySmartUpload, strAdr

set mySmartUpload=nothing'Si aucune erreur s'est produite on redirige vers uploadok.asp



End if
%>
<form method="POST" action="index.asp?action=Upload" enctype="multipart/form-data">



</form>

</html>
ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009
6 oct. 2004 à 17:09
mdr maintenant g :
ASPImage.Image error '8000ffff'

This evaluation component has expired. Please register.

alors que g pas réussi à m'en servir ....
ya moyen de cracker la dll tu penses ?
t'a u ce pb toi ?
fr64 Messages postés 32 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 4 avril 2007
6 oct. 2004 à 17:07
Dimension en pixel.
Quel est le message d'erreur? C'est peut étre un pb de droit en écriture sur le répertoire cible.
ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009
6 oct. 2004 à 16:47
vu qu'un ça marché pas je me suis dit pkoi pas en mettre un 2e :) mais ça marche toujours pas, g bien installé aspimage ce qui est bizarre c que ça blok juste à saveimage tout le reste marche ...

autre question, la dimension c en koi là ? parce que quand je veux mettre x a 600, dimension que je mets en code html, en fait là ça agrandit l'image plutot que de la rétrécir ... c en pixel tu penses ?
fr64 Messages postés 32 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 4 avril 2007
6 oct. 2004 à 16:36
Tu fais deux fois SaveImage ?
ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009
6 oct. 2004 à 16:24
ha non pardon il est dans le if dsl, mais c bizarre ya un endroit ou ça couille chez moi :

Dim Image
Dim nImgX, nImgX_S
Dim nImgY, nImgY_S




'--- Création de l'objet image
Set Image = Server.CreateObject("AspImage.Image")


'--- Chargement de l'image
Image.LoadImage strAdresse & "" & strFichier
nImgX=Image.MaxX
nImgY=Image.MaxY


'--- Calcul des dimension
nImgX_S=600
nImgY_S=int((600*nImgY)/nImgX)


'--- On redimensionne l'image en fonction des valeurs calculées
Image.DPI=72
Image.ImageFormat=1
Image.ResizeR nImgX_S, nImgY_S



'--- On sauvegarde
Image.FileName = strAdresse & "" & "small_" & strFichier
Image.SaveImage()

if Image.SaveImage then 'test si erreur
direc= "
"'si pas erreur alors on affichera l'image dl
else
direc="une erreur c produite : "& Image.Error &"
"'si erreur alors on affiche l'erreur
end if

response.Write(direc)
fr64 Messages postés 32 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 4 avril 2007
6 oct. 2004 à 16:21
Voir ce bout de code en bas:

'On sauvegarde la vignette
Image.FileName = Server.MapPath(repvignette & "/" & nomvignette)
If Image.SaveImage Then
CreeVignette=""
Else
CreeVignette=Image.Error
End If
ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009
6 oct. 2004 à 16:16
tu devrais peut etre rajouté Image.SaveImage(); parce que là ça enregistre pas non ?
ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009
5 oct. 2004 à 14:32
fr64 > merci pour la réponse expresse, ton code m'interesse va falloir que je l'analyse + en profondeur je suis en train de dev un site pour mes parents ou je dois proposer un catalogue de photo et ton code va me faire gagner du tps !!

merci
fr64 Messages postés 32 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 4 avril 2007
5 oct. 2004 à 14:24
Non, mais le code peut être facilement modifié pour cela.

Par exemple, on initialise mvarY à zéro lors de l'init de la classe, puis on teste si mvarY=0 alors je ne fais que la partie qui concerne X,soit

If ((imgX > mvarX) Then
' Si X depasse la taille maximale
dX = mvarX
' On calcule dY proportionnellement
dY = (imgY * dX) / imgX
ranouf Messages postés 237 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 31 août 2009
5 oct. 2004 à 13:45
question, si t'indiques seulement la largeur ça gere automatiquement la hauteur ?
fr64 Messages postés 32 Date d'inscription vendredi 12 septembre 2003 Statut Membre Dernière intervention 4 avril 2007
16 août 2004 à 11:18
Non, non, ce n'est pas une source .NET.
C'est de l'ASP ancienne mouture.
cs_pereg Messages postés 2 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 16 août 2004
16 août 2004 à 11:11
Ce serait bien d'ajouter que c'est une source .NET
Rejoignez-nous