Déformation d'image par rapport à une sélection

Discussion de programmation pour éviter d'empiéter dans les autres forums

Modérateurs : Modérateurs, Développeurs

Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Je viens de penser à un truc, la fonction DrawSelBorder permet de dessiner un contour mais elle met à jour le undo. Donc en théorie, si tu trace un contour d'epaisseur double de ta dilatation ça devarit marcher. faut que tu restaure la zone quand même après le tracé de contours pour l'effacer. En pratique, je sais pas ce que ça donne...
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Merci pour l'astuce ca fonctionne pour le Undo par contre pour information cela donne une image grise... Pas grave dans mon cas vu que je Restore l'image imédiatement après comme tu l'as suggéré...

Je viens de mettre à jour le plugin... Il est normalement plus rapide car j'ai optimisé la dilatation... (La zone de convolution est un cercle au lieu d'un disque)
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

une image grise :roll: je vais regarder ça :cry:
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Voilà la ligne que j'ai utilisée :

CheckPluginFunc(DrawSelBorder(1, clWhite, False));

J'ai pas compris l'histoire du double de la dilatation... Mais de toute façon l'image est restaurée en intégralité et c'est le principal...
pf
Développeur(se)|Développeur|Développeuse
Développeur(se)|Développeur|Développeuse
Messages : 974
Inscription : 28 avr. 2004 8:45
Version de PhotoFiltre : 6
Système d'exploitation : xp seven
Localisation : 78

Message par pf »

Salut,
J'ai essayé la premiere version, c'est génial :P
Merci et bravo ..... je teste la suivante :!:
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

la je comprend pas car DrawSelBorder(1, clWhite, False) devrait dilater la zone undo de 1 pixel seulement ! y a un bug :cry:
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Oui je pense...
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

j'ai corrigé le bug dans la fonction DrawSelBorder, j'avais inversé 2 variables. Vaut mieux corriger pour la prochaine mise à jour.
Pourquoi le double de la dilation : parce que le tracé est centré sur la sélection
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Ben oui mais moi je pensais que la dilatation suffirait (éventuellement + 1) pour être tranquille mais bon je changerai pour le double...
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

si tu trace un contour d'épaisseur 20 pixels, la zone undo est dilatée de 11 (20 div 2 + 1 pour le lissage) car l'autre moitier du tracé est à l'intérieur de la sélection
Benjamin
Membre d'honneur
Membre d'honneur
Messages : 1075
Inscription : 29 oct. 2003 14:53
Version de PhotoFiltre : 6.0
Système d'exploitation : Windows 2000 SP 4
Processeur : Pentium IV 2,4Ghz
Mémoire RAM : 512Mo DDR 333
Localisation : 21

Message par Benjamin »

Ah oui d'accord j'ai compris :D

Par contre mon epaisseur est variables si j'appelle la fonction à chaque fois ca va réadapter la zone undo à chaque fois?

Si oui pour revenir à la zone initiale j'utilise 1 ou 0?
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12830
Inscription : 28 oct. 2003 22:49

Message par Antonio »

bas c'est dynamique donc faut que tu le refasse à chauqe fois (c'est pas grave vu que c'est un reallocmem) Par contre vaut mieux annuler avec une épaisseur de 1 car avec 0 je quitte sans rien faire...