|
| Traiter des images pour les rendre floues |
| Iniciado por Dominique TRONCZYK, 29,oct. 2013 15:36 - 14 respuestas |
| |
| | | |
|
| |
Miembro registrado 72 mensajes |
|
| Publicado el 29,octubre 2013 - 15:36 |
Je cherche un moyen simple de traiter par lot une serie d'images contenues dans une base HF pour les rendre floues. J'utiliserai ensuite les images floues en fond de fenêtre pour afficher un produit, un peu à la manière des images des albums dans l'appli W8 de Deezer. Bien entendu, je ne souhaite pas alourdir trop le poids de l'installation de mon appli. Quelqu'un connait-il un contrôle spécifique (gratuit ou payant) ?
Merci par avance. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 29,octubre 2013 - 16:16 |
Bonjour Dominique
une manière simple pour perdre du détail est de changer de taille...
Donc (par exemple, et les tailles réelles sont à trouver) : - tu charge une image qui fait 1024*768 dans un champ image qui n'en fait que 640* 480, tu la sauve sur disque avec dsauveimage - tu charge l'image qui fait 640*480 dans un champ qui fait 1024*768, et tu sauve sur disque
ton image finale devrait être floue par rapport à celle de départ
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
Plus d'information sur http://fabriceharari.com
On 10/29/2013 9:36 AM, Dominique TRONCZYK ( wrote:
Je cherche un moyen simple de traiter par lot une serie d'images contenues dans une base HF pour les rendre floues. J'utiliserai ensuite les images floues en fond de fenêtre pour afficher un produit, un peu à la manière des images des albums dans l'appli W8 de Deezer. Bien entendu, je ne souhaite pas alourdir trop le poids de l'installation de mon appli. Quelqu'un connait-il un contrôle spécifique (gratuit ou payant) ?
Merci par avance. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 72 mensajes |
|
| Publicado el 29,octubre 2013 - 17:13 |
Bonjour Fabrice, Je te remercie pour la réponse et je vais tester pour voir si j'obtiens bien un effet de type flou gaussien. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes |
|
| Publicado el 30,octubre 2013 - 10:28 |
bonjour je ne sais pas si cela va répondre à votre besoin, mais il existe dans le sdk de xnview (http://www.xnview.com/wiki/index.php/GFL_SDK) une fonction (gflGaussianBlur voir page 62 du manuel pdf), mais je ne pas du tout un spécialiste des images Bon dev |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes |
|
| Publicado el 30,octubre 2013 - 10:40 |
suite je confirme que c'est bien ce que vous recherchez (voir la démo)

|
| |
| |
| | | |
|
| | |
| |
| Publicado el 30,octubre 2013 - 12:24 |
Bonjour,
Pour faire une image de fond d'écran, on peut flouter l'image d'origine ... mais je ne suis pas sûr que cela donne un confort visuel valable. A mon avis, il vaut mieux éclaircir l'image d'origine. Cf la fonction dModifieLuminosité() |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 72 mensajes |
|
| Publicado el 30,octubre 2013 - 13:21 |
Voilà le type d'effet souhaité (Copie écran appli Deezer en W8) L'image retraitée en flou sert en fond d'écran et l'image originale est par dessus.

|
| |
| |
| | | |
|
| | |
| |
| Publicado el 31,octubre 2013 - 11:44 |
Pourquoi ne pas jouer simplement sur la transparence ?
Eric
-- Eric Laurent nospam.laurent.systel@wanadoo.fr (enlever nospam.) |
| |
| |
| | | |
|
| | |
| |
| Publicado el 22,enero 2016 - 00:29 |
/// image flou gnOpacite=7 IMG_apercu..Opacité=gnOpacite
/// image net gnOpacite=100 IMG_apercu..Opacité=gnOpacite |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 11 mensajes |
|
| Publicado el 03,diciembre 2019 - 16:35 |
Bonjour,
Désolé d'exhumer un sujet aussi vieux, mais je me retrouve confronté à la même problématique et jouer sur l'opacité permet seulement de délaver l'image mais pas de la flouter ... l'objectif étant de pouvoir jouer sur le niveau de floutage de sorte à permettre de deviner l'image sans pour autant la voir précisément, ça ne suffit pas.
@Dominique TRONCZYK, avez-vous finalement trouvé une solution ?
Merci par avance, Cdt, Fabien
-- Cordialement, Fabien |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes |
|
| Publicado el 07,diciembre 2019 - 16:26 |
bonjour Peut-être que cce code vous aidera : il faut 3 champs image IMG_ORIGINALE, IMG_BW, IMG_FLOUTEE ayant les mêmes caractéristiques
Hauteur, Largeur, Ligne, Colonne, CouleurRVB, CouleurUnie, ValeurGris, NiveauDeGris, i, Poids sont des entiers Pixel, Coef est un tableau de 9 entiers
Coef[1] = -1; Coef[2] = -1; Coef[3]= -1 Coef[4] = -1; Coef[5] = 8 ; Coef[6]= -1 Coef[7] = -1; Coef[8] = -1; Coef[9]= -1
Hauteur = IMG_ORIGINALE..Hauteur Largeur = IMG_ORIGINALE..Largeur
dDébutDessin(IMG_BW, dEffacer) FOR Ligne=1 _TO_ Hauteur FOR Colonne=1 _TO_ Largeur CouleurRVB = dPixelCouleur(IMG_ORIGINALE, Colonne, Ligne) CouleurUnie = RVBRouge(CouleurRVB) + RVBVert(CouleurRVB) + RVBBleu(CouleurRVB) ValeurGris = PartieEntière(CouleurUnie/3) NiveauDeGris = RVB(ValeurGris, ValeurGris, ValeurGris) dPoint(Colonne, Ligne, NiveauDeGris) END END
Poids = 0 FOR i=1 _TO_ 9 Poids += Coef[i] END
dDébutDessin(IMG_FLOUTEE,dEffacer) FOR Ligne=2 _TO_ Hauteur-1 FOR Colonne=2 _TO_ Largeur-1 Pixel[1] = dPixelCouleur(IMG_BW, Colonne-1, Ligne-1) Pixel[2] = dPixelCouleur(IMG_BW, Colonne, Ligne-1) Pixel[3] = dPixelCouleur(IMG_BW, Colonne+1, Ligne-1) Pixel[4] = dPixelCouleur(IMG_BW, Colonne-1, Ligne) Pixel[5] = dPixelCouleur(IMG_BW, Colonne, Ligne) Pixel[6] = dPixelCouleur(IMG_BW, Colonne+1, Ligne) Pixel[7] = dPixelCouleur(IMG_BW, Colonne-1, Ligne+1) Pixel[8] = dPixelCouleur(IMG_BW, Colonne, Ligne+1) Pixel[9] = dPixelCouleur(IMG_BW, Colonne+1, Ligne+1) ValeurGris = 0 FOR i=1 _TO_ 9 ValeurGris += Coef[i] * RVBRouge(Pixel[i]) END IF Poids = 0 THEN ValeurGris = ValeurGris/1 ValeurGris = ValeurGris+128 ValeurGris = 255 - ValeurGris ELSE ValeurGris = ValeurGris/Poids ValeurGris = ValeurGris+128 ValeurGris = 255 - ValeurGris END NiveauDeGris = RVB(ValeurGris, ValeurGris,ValeurGris) dPoint(Colonne, Ligne, NiveauDeGris) END END
-- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai. Quand un utilisateur vous a aidé, n'oubliez pas de le remercier... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 962 mensajes |
|
| Publicado el 08,diciembre 2019 - 10:28 |
Hello, pour flouter des images à l'aide d'un filtre dans un projet Windev, on peut aussi utiliser les assemblages dotnet AForge.Net de licence LPGL. Récupérer les bibliothèques AForge.NET ici : http://www.aforgenet.com/framework/downloads.html choisir [ Download Libraries Only ] Dans le répertoire Release du zip extraire les dll AForge.dll, AForge.Imaging.dll et AForge.Math.dll Dans le projet Windev ajouter ces dll comme Assemblages Dotnet ainsi que l' assemblage System.Drawing Voici le code pour sélectionner une image, la flouter avec un filtre flou gaussien et la sauvegarder en jpeg qualité 75%.
MonImage est une System.Drawing.Image dynamique sFichier est une chaîne = fSélecteurImage("", "", "Sélectionnez une image...") SI sFichier<>"" ALORS MonImage = Image.FromFile(sFichier) MonFiltre est un GaussianBlur( 5 , 50 ) MonFiltre.ApplyInPlace(MonImage) MonImage.Save(sFichier + "_floue.jpg", ImageFormat.Jpeg); FIN
Image Originale :

Image Floutée :

-- Ami calmant, J.P |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 948 mensajes |
|
| Publicado el 08,diciembre 2019 - 14:14 |
Bonjour J'ai revu le code car il faisait plus de la détection de contour que de "floutage"
n, Hauteur, Largeur, Ligne, Colonne, l, c, CouleurRVB, MoyR, MoyV, MoyB sont des entiers
n = 4
IF n < 2 THEN n = 2 Hauteur = IMG_ORIGINALE..Hauteur Largeur = IMG_ORIGINALE..Largeur
dDébutDessin(IMG_FLOUTEE, dEffacer)
FOR Ligne=1 _TO_ Hauteur-n STEP n FOR Colonne=1 _TO_ Largeur-n STEP n MoyR=0; MoyV=0; MoyB=0 FOR i=1 _TO_ n*n l = PartieEntière((i-1)/n) c = Modulo(i-1, n) CouleurRVB = dPixelCouleur(IMG_ORIGINALE, Colonne+c, Ligne+l) MoyR += RVBRouge(CouleurRVB) MoyV += RVBVert(CouleurRVB) MoyB += RVBBleu(CouleurRVB) END MoyR = MoyR/(n*n); MoyV = MoyV/(n*n); MoyB=MoyB/(n*n) CouleurRVB = RVB(MoyR, MoyV, MoyB) FOR i=1 _TO_ n*n l = PartieEntière((i-1)/n) c = Modulo(i-1, n) dPoint(Colonne+c, Ligne+l, CouleurRVB) END END END
exemples : original, n=2, n=3, n=4




-- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai. Quand un utilisateur vous a aidé, n'oubliez pas de le remercier... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.402 mensajes |
|
| Publicado el 20,enero 2020 - 19:38 |
Bonjour Jurassic, j'ai essayé ton code et l'objet Image de la ligne suivante n'a pas de propriété 'FromFiles', est-ce que j'ai oublié quelque chose?
MonImage = Image.FromFile(sFichier)
Merci !
-- Jean Turcotte WX 25 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.402 mensajes |
|
| Publicado el 20,enero 2020 - 19:43 |
Pour corriger le probleme, j'ai du préciser le chemin avec;
MonImage = AForge.Imaging.Image.Fromfile(sFichier)
Et ca fonctionne tres bien d'ailleurs, Merci:)
-- Jean Turcotte WX 25 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | | | |
| | |
|