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

jQuery Discussion :

maths pour resize d'images


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 248
    Par défaut maths pour resize d'images
    Salut tout le monde ...
    Bon j'ai un problème de matheux ... et je n'arrive pas à trouver l'algo...ou comment faire

    voila, en simplifiant la problématique ça donne ça
    j'ai une div.imagecollection de 800px de large dans laquelle je peux faire apparaitre des images (avec un append)
    chaque image qui apparait peut avoir une largeur et une hauteur différente.
    certaines sont horizontales, d'autres verticales etc ...

    bon j'aimerai qu'à chaque nouvelle image chargée, toutes les tailles des images soient recalculées de façon à ce qu'elles aient toutes la même hauteur et qu'elles occupent la largeur maximale disponible dans mes 800px (sachant qu'en plus on a 5px de marge à droite pour chaque image)

    vous voyez le truc de dingue ... alors j'essaye de calculer de ratios et tout ça mais je trouve pas la logique ...

    si vous avez un pote prof de math ... lol
    thanks

    @++

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 248
    Par défaut
    salut...
    merci mais en fait c'est beaucoup plus complexe que ça comme problématique ...
    ça n'a l'air de rien mais c'est la galère...
    du redimensionnement proportionnel c'est facile à faire... mais calculer un resize en hauteur contraint à une zone d'une certaine largeur en fonction d'un nombre variable d'images dans cette zone ... c'est autrement plus difficile ...

    en gros j'essaye de faire la même chose que sur ce site
    mailerlite.fr avec l'outil "ajouter des images" si ça peut vous faire mieux comprendre la problématique ...

    thanks

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 248
    Par défaut
    Pour vous donner une idée j'en suis là mais ça marche pas

    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
     //resize les image dans un bloc images
     function sizeImgBlock (imagescolection) {
    		imgs = $(imagescolection).find('img');
     		nbimg = $(imgs).length;
     
     		trace(imgs);
     		trace(nbimg);
     
     		trace('maxw=' + maxw); //largeur  de ma div containeur
     		trace('maxh=' + maxh); //hauteur de ma div containeur
     
     		maxratio = 0;
     
     		$.each(imgs, function (index, value) {
     
    			//on cherche l'image la plus large		
    			w = parseInt($(this).width());
    			h = parseInt($(this).height());
     
     
    			ratioh = h/w; //la hauteur = x fois la largeur
     
     
    			if ( ratioh > maxratio ) {
    				maxratio = ratioh;
    				trace ('ratioh='+ratioh);
    				trace ($(this).attr('id')+' '+w+' '+h);
     
    				//hauteur finale maximale de la div containeur
    				hmax = maxw * maxratio ;
    				trace ('hmax='+hmax);
     
    				wration = maxw / hmax ;
    				trace ('wration='+wration);
    			}
     
     
     		});
     
    		$.each(imgs, function (index, value) {
    					//$(this).css('width', parseInt((maxw / (nbimg)) - (5 * (2 - 1))));
     
    					w = parseInt($(this).width());
    					h = parseInt($(this).height());
     
    				trace ('w='+w);
    				trace ('h='+h);
     
    				localratio = w / h ; //ratio de mon image
     
    				//resize des miages
     
    				$(this).css('height', parseInt(hmax / ( localratio)));
    				$(this).css('width', '');
    			});
     
     
     	//	$(imagescolection).css('height', $(imagescolection).find('img').height());
     }

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ha tu veux dire que tes images sont toutes présentes en même temps dans la zone ?
    Je n'avais pas compris cela.

    Il existe un plugin jquery qui s'appelle equalize, c'est peut etre une piste, mettre tes images dans des divs et les equalisez ...

    sinon il existe des plugins de "wall" http://creotiv.github.com/jquery-photowall/example.html
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 248
    Par défaut
    salut.
    Oui les images sont toutes présentes dans la zone.
    j'ai par exemple 3 images qui se chargent les unes à côté des autres
    une de 100 par 200
    une de 500 par 50
    et une de 1500 par 300

    et je veux qu'elles se resizent en gardant leurs proportions respectives pour prendre un maximum de largeur dans une zone qui fait 700 de large en ayant toutes la même hauteur

    j'ai regardé les plugins dont tu parles mais ça ne gère pas cette problématique malheureusement :'(

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

Discussions similaires

  1. resizer une image de fond en fonction de la resolution
    Par the_edge dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 02/11/2006, 14h47
  2. Réponses: 13
    Dernier message: 23/12/2004, 18h01
  3. Réponses: 7
    Dernier message: 21/10/2004, 09h13
  4. Comment faire pour afficher une image ds une dbgrid
    Par totomaze dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/10/2004, 15h31
  5. Mkisofs - problème pour créer une image
    Par tomnie dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 04/08/2004, 11h44

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