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

Algorithmes et structures de données Discussion :

dégradé entre deux images[php]


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut dégradé entre deux images[php]
    bonjour (enfin re, il me semble avoir déjà posté ici une fois précédente ^^).

    Bon, cette fois, je ne vais pas vous demander un algorithmes déjà existant pour faire le clown avec ^^ (je progresse).

    En fait, je souhaiterai faire un dégradé entre deux images.

    Ceux qui ne comprennent pas dirons: utilise imagecopymerge :o
    non, ce n'est pas ça: imagecopymerge copy la totalité d'une image sur une autre, avec un degré de transparence.

    En fait, je voudrai pouvoir avoir un effet de transition entre deux images.
    J'ai déjà pu obtenir des résultats quand il s'agit d'appliquer toute une image sur une autre
    exemple:
    http://i16.servimg.com/u/f16/09/01/50/74/temp10.png
    http://i16.servimg.com/u/f16/09/01/50/74/temp11.png

    a partir des modèles noirs et bleu;
    comm vous le voyez, c'est assez réussi. Mais déjà jai plusieurs problèmes
    tout d'abord, je ne peu faire ça que dans un sens. En fait, je voudrai par exemple pouvoir coller une images de petite taille sur une autre de plus grande taille, et qu'il y ait un "cadre" de transition entre les deux.

    Et je ne peux pas le faire avec ce système.

    Je me base sur le canal alpha pour creer ces images.
    Avec vous une idée de la façon dont je pourrais boucler mon image pour avoir ce résultat?

    merci (même si vous ,n'avez que des pistes ^^)

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Heu.... j'ai pas tout compris. Tu veux juste faire un dégradé sur le channel Alpha ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    je voudrai pouoir coller une image l'une sur l'autre.
    Pour cela j'utilise le canal alpha pour définir une transparence plus ou moins grande.

    Mais bon, je me demandais quelle algorithme je pourrais utiliser pour faire que l'effet de transparence se fasse sur un cadre d'une largeur de x (et que je pourrai paramétrer le x).

    merci

  4. #4
    Membre confirmé Avatar de O( N )
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2006
    Messages : 126
    Par défaut
    bonjour au fan de Magic ,

    tu as une image1 de taille x0,y0 et une image2 de taille x1,y1.
    image2 est plus petite que image1 ?

    si (image2 == image1) en taille x et y =>
    tu affiche un pourcentage de image1 avec un pourcentage de image2 => si tu veux 60% de image2 sur image1 =>
    imageResultante = 40%image1 + 60%image2.

    Est-ce cela ta question ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    Bon, je vais réessayer d'expliquer
    non, je ne pense pas que ça soit ça (si j'ai bien compris ce que tu as dit ^^, ce dont je ne suis pas sur).

    Je vous ai fait une petite image, mais c'est fait avec paint, alors c'est vraiment nulle comme explication :/
    http://i16.servimg.com/u/f16/09/01/50/74/degrad10.png
    bon, le carré d'origine est censé être rouge foncé. Le fond est blanc. Quand j'applique ce que je veux faire, ça me fais un dégradé entre les deux, c'est a dire d'abord du rouge , puis du orange (pour peu que orange soit une teinte intermédiaire entre le rouge et le blanc ).
    Si j'avais mis un "cadre" de flou plus grand, j'aurai eut un carré rouge foncé plus petit, et un bord rouge et orange plus grand (en fait, j'aurai eut des couleurs intermédiaires.).

    Pour un "cadre" de 10 pixel par exemple, je peux voir ça comme ça: je prend l'image que je veux coller, je divise 127 (valeurs maximal du canal alpha) par dix, et j'applique un transparence d'abord très forte pour le bord, puis nulle en me rapprochant pour finir a 0 au dixième pixel du bord.

    Voila, je ne sais pas si j'ai été clair.

    P.S: en ce qui concerne Magic, j'ai été fan, mais depuis ravnica, et surtout leur dernière abérration, chaos planaire, je n'aime plus du tout.

    P.S2: durant mes essai pour faire ce que je voulais, je suis tombé sur ces deux résultats:
    http://i16.servimg.com/u/f16/09/01/50/74/temp13.png
    et
    http://i16.servimg.com/u/f16/09/01/50/74/temp12.png

    Si j'arrive pas a faire ce que je veux, je pourrai au moins présenter ça à ceux qui font les cartes Magic :/

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par bubuche87
    Pour un "cadre" de 10 pixel par exemple, je peux voir ça comme ça: je prend l'image que je veux coller, je divise 127 (valeurs maximal du canal alpha) par dix, et j'applique un transparence d'abord très forte pour le bord, puis nulle en me rapprochant pour finir a 0 au dixième pixel du bord.
    Bah voila. tu as donné l'algo. Tu veux une formule plus générale ?

    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
     
    // x,y : coordonnées d'un pixel de l'image
    // width,height : largeur et hauteur de  l'image
    // border: taille de la bordure
    // return: valeur du canal alpha pour le pixel x,y de 0=opaque a 127=transparent
    int getAlpha(int x, int y, int width, int height, int border) {
     
      int alphax = 0;
      if (x<border) alphax = 127-(127*x)/border;
      if (x>width-border) alphax = 127-(127*(width-x))/border;
     
      int alphay = 0;
      if (y<border) alphay = 127-(127*y)/border;
      if (y>height-border) alphay = 127-(127*(height-y))/border;
     
      return max(alphax, alphay);
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    wé, merci.
    Enfin, c'est pas tout a fait ça, car cela ne marcheque pour le bord haut et pour le bord de gauche.

    sinon, le max() c'est déjà pas mal (j'aurai du y penser).

    Enfin, le problème viens peut-être du fait que j'ai du changer ton algo en langage php, mais je ne crois pas que ça puisse venir de là (a priori c'est de la traduction littérale, sans ambiguitée :/)

    est-ce que tu as une idée d'ou peut venir le problème?

    merci pour ton aide

    EDIT: désolé, cela marchait très bien!!!!!!!!!!!!!!!!
    l'erreur venait de moi.

    C'est super trop beau, merci beaucoup beaucoup beaucoup.
    je crée l'extension a mon logiciel dès maintenant

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Membre confirmé Avatar de O( N )
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2006
    Messages : 126
    Par défaut
    On peut voir les résultats ?

    Félicitations à toi et à pseudocode si cela fonctionne...

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par O( N )
    Félicitations à toi et à pseudocode si cela fonctionne...
    tu m'étonnes... un de mes meilleurs algo !
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Par défaut
    désolé, j'étais un peu absent ^^

    voila les résultats :
    http://i16.servimg.com/u/f16/09/01/50/74/temp14.png
    http://i16.servimg.com/u/f16/09/01/50/74/temp11.jpg
    enfin, bon, ce ne sont pas les meilleurs. Cela rendrait du top de top sur une image de fond avec une forte complexité, et je n'ai pas l'utilté de ce genre de chose (même si je vais faire un truc sur fond d'étoile danspas trop longtemps).

    tu m'étonnes... un de mes meilleurs algo
    je ne sais pas si le ton est ironique, mais tu peux être vraiment fier de toi.
    C'est un algo a la fois simple et efficace.
    C'est pile le genre de chose que je cherche, car comme je code en php, j'essai de pas faire des choses trop longue dans la boucle qui parcour l'image (sur une image de 100*100 (petite donc) pour peu qu'il y ait quelques if, une ou deux fonctions personnel et un substr, php fait ).

    Je vais vous faire un nouvau post, pour une nouvelle recherche d'algo, mais comme je sbodore que c'est encore plus simple, j'hésite.

    (comment savoir si un ratio rouge/vert/bleu et différent d'un autre avec une tolérance de x, en ne comptant que la couleur la plus loins du ratio d'origine.
    Ca mérite un topic?)

    P.S: je ne sais pas pourquoi je ne recoit pas de message quand il y a des réponses. :/

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

Discussions similaires

  1. [FLASH MX] Fondu entre deux images
    Par yanng dans le forum EDI/Outils
    Réponses: 4
    Dernier message: 06/04/2010, 09h33
  2. Calcul erreur entre deux images noir et blanc
    Par b4sols dans le forum Images
    Réponses: 1
    Dernier message: 22/03/2007, 08h59
  3. Compter pixels différents entre deux images
    Par hiccup dans le forum OpenGL
    Réponses: 5
    Dernier message: 13/03/2007, 14h26
  4. Différence entre deux images
    Par Mookie dans le forum 2D
    Réponses: 3
    Dernier message: 13/04/2006, 15h46
  5. [PIL] Difference entre deux images
    Par t_om84 dans le forum Calcul scientifique
    Réponses: 4
    Dernier message: 26/12/2005, 12h45

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