IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Redimenssionnement d'image en masse


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut Redimenssionnement d'image en masse
    Bonjour,

    voila je debute en windev et je dois créer une application qui récupère des photos d'un poste local, les redimensionner en 4 tailles différentes et les envoyé via ftp sur un serveur web.

    J'ai bien réussi à redimensionner plusioeurs photo grace a un champ photo non visible mais au bout d'un moment, l'application se fige...

    auriez vous une petite idée ?

    voila un bout de code pour imager un peu tout ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    nia = Chemin_Photo + "\" + sSousChaine
    					Largeur = ExtraitChaîne(InfoBitmap(nia), 2)
    					Hauteur = ExtraitChaîne(InfoBitmap(nia), 3)
    					FEN_Export_des_biens.IMG_FTP=nia
    					// redimensionne l'image
    					FEN_Export_des_biens.IMG_FTP..Largeur=Largeur
    					FEN_Export_des_biens.IMG_FTP..Hauteur=Hauteur
     
    					LIB_transfert..Text="Image chargée 1/4"
     
    					// Calculer la largeur de l'image en fonction de la largeur voulue
    					nHauteur = (640 * Hauteur)/Largeur
    					FEN_Export_des_biens.IMG_FTP..Largeur=640
    					FEN_Export_des_biens.IMG_FTP..Hauteur=nHauteur
    					LIB_transfert..Text="avant redimension 1/4"
     
    					dRedimensionne(FEN_Export_des_biens.IMG_FTP,640,nHauteur)
    					LIB_transfert..Text="redimension ok 1/4"
     
    					dSauveImageJPEG(FEN_Export_des_biens.IMG_FTP,nia+"_tmp",80)
    					LIB_transfert..Text="Image sauvée 1/4"
    					dFinDessin(FEN_Export_des_biens.IMG_FTP)
     
    					FTPEnvoie(nConnexion,Chemin_Photo + "\" + sSousChaine+"_tmp","/httpdocs/image/photo/"+tabBien_Photo[i,1]+"/640/"+i+"_"+num_photo+".jpg","transfert_FTP",FTPModeBinaire)
    					JAUGE_Jauge_transfert=25
    					LIB_transfert..Text=sSousChaine+"_tmp 1/4"
    					Multitâche(1)

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Par défaut
    Je ne dispose pas de mes sources pour le moment, je ne suis pas chez moi, mais il me semble qu'il faut réduire l'image avant de redimensionner le champ.

    Peso j'utilise une fenêtre hors écran que je redimensionne selon les largeur & hauteur de l'image avant de redimensioner le champ image, ensuite je redimensionne le champ image, j'importe l'image, je redimensionnne l'image, puis le champ image et je sauve.

  3. #3
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut
    Je procèderais en plusieurs étapes :
    - redimensionnement 1 dans repertoire 1
    - redimensionnement 2 dans repertoire 2
    - redimensionnement 3 dans repertoire 3
    - redimensionnement 4 dans repertoire 4

    Envoi des photos par FTP.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    Merci de vos reponses,

    en fait le redeimmensionnement et l'envoi fonctionne pour les environ 100 premieres photos et ensuite ca bloque. J'utilise un champs hors ecran pour la redimension. Est ce que le fait d'utiliser une fenetre resoudrait mon probleme?

    Pour le fait de faire en etape, il est vrai que je n'ai pas testé. Je le ferais dès demain matin car j'ai oublié mon dungle........... :'(

    N'y aurait il pas un probleme de "saturation de ressource" ...

    Merci toujours

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Par défaut
    Citation Envoyé par profx56 Voir le message
    N'y aurait il pas un probleme de "saturation de ressource"
    C'est une possibilité, mais c'est difficile à dire sans avoir vu le source.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 13
    Par défaut
    Bonjour,

    voici le code en question, tabBien_Photo contient une chaine de caractere constitué du chemin de chaque photo séparé par |

    voila,

    merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    	sSousChaine est une chaîne
    		num_photo est un entier
    		nConnexion est un entier
    		nConnexion = FTPConnecte(Hote_ftp,Login_ftp,Pass_ftp,22,Vrai,90)
     
    		POUR i=1 A nNbBienExport	
     
    			//Gestion de la jauge
    			nPourcentP est un entier
     
    			FTPRepCrée(nConnexion,"/httpdocs/image/photo/"+tabBien_Photo[i,1])
    			FTPRepCrée(nConnexion,"/httpdocs/image/photo/"+tabBien_Photo[i,1]+"/144")
    			FTPRepCrée(nConnexion,"/httpdocs/image/photo/"+tabBien_Photo[i,1]+"/274")
    			FTPRepCrée(nConnexion,"/httpdocs/image/photo/"+tabBien_Photo[i,1]+"/300")
    			FTPRepCrée(nConnexion,"/httpdocs/image/photo/"+tabBien_Photo[i,1]+"/640")
     
    			sSousChaine = ExtraitChaîne (tabBien_Photo[i,2] , rangPremier , "|")
    			num_photo = 1
    			nia est une chaîne
    			nHauteur est un entier
    			Largeur est un entier
    			Hauteur est un entier
     
    			TANTQUE sSousChaine <> EOT
     
    			    SI fFichierExiste (Chemin_Photo + "\" + sSousChaine) ALORS 
    					// Redimensionnement de l'image
    					// Récupération des caractéristiques de l'image
    					LIB_transfert..Text="Image 1/4"
     
    					nia = Chemin_Photo + "\" + sSousChaine
    					Largeur = ExtraitChaîne(InfoBitmap(nia), 2)
    					Hauteur = ExtraitChaîne(InfoBitmap(nia), 3)
     
    					FEN_Export_des_biens.IMG_FTP..Largeur=Largeur
    					FEN_Export_des_biens.IMG_FTP..Hauteur=Hauteur
    					FEN_Export_des_biens.IMG_FTP=nia
     
    					LIB_transfert..Text="Image chargée 1/4"
     
    					// redimensionne l'image
    					nHauteur = (640 * Hauteur)/Largeur
    					dRedimensionne(FEN_Export_des_biens.IMG_FTP,640,nHauteur)
    					LIB_transfert..Text="redimension ok 1/4"
     
    					FEN_Export_des_biens.IMG_FTP..Largeur=640
    					FEN_Export_des_biens.IMG_FTP..Hauteur=nHauteur				
     
    					dSauveImageJPEG(FEN_Export_des_biens.IMG_FTP,nia+"_tmp",80)
    					LIB_transfert..Text="Image sauvée 1/4"
     
    					dFinDessin(FEN_Export_des_biens.IMG_FTP)
     
    					FTPEnvoie(nConnexion,Chemin_Photo + "\" + sSousChaine+"_tmp","/httpdocs/image/photo/"+tabBien_Photo[i,1]+"/640/"+i+"_"+num_photo+".jpg","transfert_FTP",FTPModeBinaire)
    					JAUGE_Jauge_transfert=25
    					LIB_transfert..Text=sSousChaine+"_tmp 1/4"
    					Multitâche(1)
     
    					FEN_Export_des_biens.IMG_FTP..Largeur=Largeur
    					FEN_Export_des_biens.IMG_FTP..Hauteur=Hauteur
    					FEN_Export_des_biens.IMG_FTP=nia
     
    					LIB_transfert..Text="Image chargée 2/4"
     
    					// redimensionne l'image
    					nHauteur = (300 * Hauteur)/Largeur
    					dRedimensionne(FEN_Export_des_biens.IMG_FTP,300,nHauteur)
    					LIB_transfert..Text="redimension ok 2/4"
     
    					FEN_Export_des_biens.IMG_FTP..Largeur=300
    					FEN_Export_des_biens.IMG_FTP..Hauteur=nHauteur
     
    					dSauveImageJPEG(FEN_Export_des_biens.IMG_FTP,nia+"_tmp",80)	
    					LIB_transfert..Text="Image sauvée 2/4"
     
    					dFinDessin(FEN_Export_des_biens.IMG_FTP)
     
    					FTPEnvoie(nConnexion,Chemin_Photo + "\" + sSousChaine+"_tmp","/httpdocs/image/photo/"+tabBien_Photo[i,1]+"/300/"+i+"_"+num_photo+".jpg","transfert_FTP",FTPModeBinaire)
    					JAUGE_Jauge_transfert=50
    					LIB_transfert..Text=sSousChaine+"_tmp 2/4 "
    					Multitâche(1)
     
    					FEN_Export_des_biens.IMG_FTP..Largeur=Largeur
    					FEN_Export_des_biens.IMG_FTP..Hauteur=Hauteur
    					FEN_Export_des_biens.IMG_FTP=nia
     
    					LIB_transfert..Text="Image chargée 3/4"
     
    					// redimensionne l'image
    					nHauteur = (274 * Hauteur)/Largeur
    					dRedimensionne(FEN_Export_des_biens.IMG_FTP,274,nHauteur)
    					LIB_transfert..Text="Redimension ok 3/4"
     
    					FEN_Export_des_biens.IMG_FTP..Largeur=274
    					FEN_Export_des_biens.IMG_FTP..Hauteur=nHauteur
     
    					dSauveImageJPEG(FEN_Export_des_biens.IMG_FTP,nia+"_tmp",80)	
    					LIB_transfert..Text="Image sauvée 3/4"
     
    					dFinDessin(FEN_Export_des_biens.IMG_FTP)
     
    					FTPEnvoie(nConnexion,Chemin_Photo + "\" + sSousChaine+"_tmp","/httpdocs/image/photo/"+tabBien_Photo[i,1]+"/274/"+i+"_"+num_photo+".jpg","transfert_FTP",FTPModeBinaire)
    					JAUGE_Jauge_transfert=75
    					LIB_transfert..Text=sSousChaine+"_tmp 3/4"
    					Multitâche(1)
     
    					// redimensionne l'image
    					FEN_Export_des_biens.IMG_FTP..Largeur=Largeur
    					FEN_Export_des_biens.IMG_FTP..Hauteur=Hauteur
    					FEN_Export_des_biens.IMG_FTP=nia
    					LIB_transfert..Text="Image chargée 4/4"
     
    					nHauteur = (144 * Hauteur)/Largeur
    					dRedimensionne(FEN_Export_des_biens.IMG_FTP,144,nHauteur)
    					LIB_transfert..Text="Redimension ok 4/4"
     
    					FEN_Export_des_biens.IMG_FTP..Largeur=144
    					FEN_Export_des_biens.IMG_FTP..Hauteur=nHauteur			
    					dSauveImageJPEG(FEN_Export_des_biens.IMG_FTP,nia+"_tmp",80)
    					LIB_transfert..Text="Image sauvée 4/4"	
     
    					dFinDessin(FEN_Export_des_biens.IMG_FTP)
     
    					FTPEnvoie(nConnexion,Chemin_Photo + "\" + sSousChaine+"_tmp","/httpdocs/image/photo/"+tabBien_Photo[i,1]+"/144/"+i+"_"+num_photo+".jpg","transfert_FTP",FTPModeBinaire)
     
    					JAUGE_Jauge_transfert=100
    					LIB_transfert..Text=sSousChaine+"_tmp 4/4"
    					Multitâche(1)
     
    					sSousChaine = ExtraitChaîne (tabBien_Photo[i,2], rangSuivant , "|" )
     
    					SQLTransaction( sqlDébut )
    					nIDPhoto est un entier
    					sdReqIDPhoto est une Source de Données
    					sSQLIDPhoto est une chaîne
    					sSQLIDPhoto = "SELECT * FROM photo ORDER BY id DESC"
    					SI PAS SQLExec(sSQLIDPhoto,sdReqIDPhoto) ALORS
    						SQLInfoGene(sdReqIDPhoto)
    						Erreur("Requete envoyée : "+sSQLIDPhoto)
    						Erreur("Erreur Lors de la recuperation du nouvel id de photo : " + SQL.Erreur + " dans la requête : ", SQL.MesErreur)
    					SINON
    						nTmp6 est un entier
    						SI PAS SQLFetch(sdReqIDPhoto)=0 ALORS
    							nIDPhoto = 1
    						SINON
    							nTmp6 = SQLLitCol(sdReqIDPhoto,1)
    							nIDPhoto = nTmp6 + 1
    						FIN
    					FIN
    					SQLFerme(sdReqIDPhoto)
    					SQLTransaction( sqlFin )
     
    					SQLTransaction( sqlDébut )
    					nOrdrePhoto est un entier
    					sdReqOrdrePhoto est une Source de Données
    					sSQLOrdrePhoto est une chaîne
    					sSQLOrdrePhoto = "SELECT * FROM photo WHERE idbien="+tabBien_Photo[i,1]+" ORDER BY ordre DESC"
    					SI PAS SQLExec(sSQLOrdrePhoto,sdReqOrdrePhoto) ALORS
    						SQLInfoGene(sdReqOrdrePhoto)
    						Erreur("Requete envoyée : "+sSQLOrdrePhoto)
    						Erreur("Erreur Lors de la recuperation du nouvel ordre de photo : " + SQL.Erreur + " dans la requête : ", SQL.MesErreur)
    					SINON
    						nTmp5 est un entier
    						SI PAS SQLFetch(sdReqOrdrePhoto)=0 ALORS
    							nOrdrePhoto = 1
    						SINON
    							nTmp5 = SQLLitCol(sdReqOrdrePhoto,3)
    							nOrdrePhoto = nTmp5 + 1
    						FIN
    					FIN
    					SQLFerme(sdReqOrdrePhoto)
    					SQLTransaction( sqlFin )
     
    					//on ajoute la rubrique
    					SQLTransaction( sqlDébut )
    					sdReqAjPhoto est une Source de Données
    					sSQLAjPhoto est une chaîne
    					sSQLAjPhoto = "INSERT INTO photo (id,chemin,ordre,idbien) VALUES ("+nIDPhoto+",'"+i+"_"+num_photo+".jpg',"+nOrdrePhoto+","+tabBien_Photo[i,1]+")"
    					SI PAS SQLExec(sSQLAjPhoto,sdReqAjPhoto) ALORS
    						SQLInfoGene(sdReqAjPhoto)
    						Erreur("Requete envoyée : "+sSQLAjPhoto)
    						Erreur("Erreur Lors de l'insertion de la nouvelle photo : " + SQL.Erreur + " dans la requête : ", SQL.MesErreur)
    					FIN
    					SQLFerme(sdReqAjPhoto)
    					SQLTransaction( sqlFin )
     
    					num_photo++
    				FIN
    			FIN
     
    			nPourcentP = (i/nNbBienExport)*100
    			JAUGE_Jauge_transfert=i
    			LIB_jauge..Text="Etape 3/3  : "+nPourcentP+"%"
    			Multitâche(1)
     
    		FIN
     
    		FTPDéconnecte(nConnexion)
     
    		JAUGE_Jauge_transfert..Visible=Faux
    		LIB_jauge1..Text="Export terminé"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Extraction images en masse
    Par mickeys dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/09/2009, 12h05
  2. Redimenssionnement d'image avec condition
    Par madislak dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 23/06/2008, 15h11
  3. Redimenssionner une image JPG
    Par TOTO32 dans le forum Langage
    Réponses: 2
    Dernier message: 02/06/2008, 13h38
  4. Macro pour redimenssionner une Image
    Par malabarbe dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/08/2007, 18h31
  5. Redimenssionné une image
    Par fabrice88 dans le forum Langage
    Réponses: 5
    Dernier message: 07/06/2006, 23h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo