Nouveau Plugin Lentille optique à tester

Suggestion de plugin, support de plugin,... En clair tout ce qui a rapport avec les plugins c'est ici !

Modérateur : Modérateurs

Lecteur
Super posteur(se)|Super posteur|Super posteuse
Super posteur(se)|Super posteur|Super posteuse
Messages : 1192
Inscription : 01 nov. 2003 11:41
Version de PhotoFiltre : PF 6.3.2 et PFS 10
Système d'exploitation : XP PRO
Processeur : Core Duo 2.2 Ghz
Mémoire RAM : 4 Go
Localisation : France d'en bas

Message par Lecteur »

Je pense avoir une piste pour le bug de violation d'accès.

Cela plante sur des images qui sont plus larges que hautes

avec un Gain à 10-20 en mettant le diamètre à 1400, boum !
FrançoisL
Membre d'honneur
Membre d'honneur
Messages : 2950
Inscription : 08 mars 2004 18:17
Version de PhotoFiltre : Dernières de PF Free et PFS
Système d'exploitation : Windows XP Home SP2
Processeur : Athlon 64 3500+ non O/C
Mémoire RAM : 2x512 Mo en DC
Localisation : Essonne

Message par FrançoisL »

:arrow: Pour l'aperçu : fais comme tu penses, on verra après !
:arrow: Pour le bug : il survient aussi bien sur des images plus hautes que large que sur des images plus larges que hautes (vous suivez ? :) )
Voici le message si ça peut aider :
"Violation d'accès à l'adresse 014FA7BC dans le module 'LENTILLE.PFL'. Ecriture de l'adresse 8EC0F$$$" où $$$ sont trois caractères qui varient d'une fois à l'autre. Quelques exemples :
-492
-39F
-36F

Voilàvoilàvoilà :shock:
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 le mieux serait de savoir quelle ligne de code plante

Si tu lance ta dll avec la méthode que j'ai indiqué dans la section prog. tu devrais facilement l'avoir

Il faut biensur que la dll soit compilée en mode debuggage
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,
Merci pour vos conseils et suggestions.
:arrow: Voici le résultat des courses :
Finalement, je garde le même principe plus :
- J'espere avoir éradiqué ce "@!#@ de bug de violation de page !
- Réduction de la taille de fenetre du plugin.
- Ajustage précis (1 pixel) avec les quatres fleches.
Je n'ai toujours pas mis le visuel de "visée" dans l'appercu mais c'est en cours !
La nouvelle version est en ligne
A+
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12940
Inscription : 28 oct. 2003 22:49

Message par Antonio »

Pour le lissage et aprés réflexion (si si), ça ne va pas etre évident du tout pour un "certain" nombre de raisons. mais j'y réflechi (à donf!).
Le lissage n'est pas évident, je confirme ! Lisser les limites extérieures d'un filtre, d'un transformation ou d'une rotation, c'est assez complexe même si ça semble simple et c'est quelque chose dont je suis assez fier dans PhotoFiltre :lol:

Beaucoup de freeware ne le font pas, le test le plus "évident", c'est d'appliquer une rotation de 3° sur une sélection et de voir comment le logiciel traite le lissage des bords de la sélection. Vous allez voir qu'il n'y en a pas beaucoup... :wink:
Lecteur
Super posteur(se)|Super posteur|Super posteuse
Super posteur(se)|Super posteur|Super posteuse
Messages : 1192
Inscription : 01 nov. 2003 11:41
Version de PhotoFiltre : PF 6.3.2 et PFS 10
Système d'exploitation : XP PRO
Processeur : Core Duo 2.2 Ghz
Mémoire RAM : 4 Go
Localisation : France d'en bas

Message par Lecteur »

avec la version du 3/06, cela plante beaucoup moins

J'ai parfois un message d'erreur quand je clique sur l'aperçu de l'image

Autres remarques :

- pendant un long calcul les lignes Diamètre et Gain disparaissent carrément, c'est volontaire ?

- j'ai pas compris l'usage des flèches
Lecteur
Super posteur(se)|Super posteur|Super posteuse
Super posteur(se)|Super posteur|Super posteuse
Messages : 1192
Inscription : 01 nov. 2003 11:41
Version de PhotoFiltre : PF 6.3.2 et PFS 10
Système d'exploitation : XP PRO
Processeur : Core Duo 2.2 Ghz
Mémoire RAM : 4 Go
Localisation : France d'en bas

Message par Lecteur »

Méthode pour faire planter

(avec image 1600x1200)

1 - choisir Cone
2 - Diamètre et Gain ramenés à 10 en cliquant en début de ligne
3 - Diamètre et Gain amenés au max en cliquant en fin de ligne
4 - double-cliquer sur l'aperçu

Je pense qu'il arrive pas à avaler tous les calculs
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 »

Bein Alors, il connais que sont maitre, ce truc !!!!
J'ai utilisé une image de memes dimentions, et j'ai beau le torturer dans tous les sens, pas moyen de le planter !!!!
Bon => J'ai a l'instant uploadé la derniere version.
Les fleches servent a déplacer le centre de la lentille par 1 pixel. (ca ne redessine que quand tu la relache).
=> Au secours (Benjamin et/ou Antonio) :
Pour éviter d'appeler la fonction de dessin pendant "qu'elle dessine", je place une variable (bool) mais visiblement, elle n'est pas prise en compte
Comment faire, avec Delphi, pour prendre en compte les evenements systeme pendant l'execution d'une boucle ???
=> Comment se fait-il qu'un controle "Enabled:=False" traite toujours les evenements !!
Merci et A+
Antonio
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 12940
Inscription : 28 oct. 2003 22:49

Message par Antonio »

La propriété enable agit seulement sur les événements clavier/souris
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 »

Pour le booléen je suppose que tu as du faire une bêtise parce que sinon je vois pas

Pour les évenements système je pense que tu as besoin de Application.ProcessMessages;

Mais dans les plugins je sais pas si ca marche bien par contre... Pour le enabled je confirme...

Sinon si tu veux desactiver un évenement tu peux éventuellement faire :

try
PaintBox.OnPaint := nil;

<traitement ou l'on ne veut pas de l'événement>

finally
PaintBox.OnPaint := PaintBoxPaint;
end;

le try .. finally bien que pas obligatoire est vraiment conseillé!
Lecteur
Super posteur(se)|Super posteur|Super posteuse
Super posteur(se)|Super posteur|Super posteuse
Messages : 1192
Inscription : 01 nov. 2003 11:41
Version de PhotoFiltre : PF 6.3.2 et PFS 10
Système d'exploitation : XP PRO
Processeur : Core Duo 2.2 Ghz
Mémoire RAM : 4 Go
Localisation : France d'en bas

Message par Lecteur »

çà plante si on lance un calcul et si on clique pendant ce temps sur une autre fonction.

Il faudrait peut-être désativer toutes les fonctions tant qu'un calcul est en cours ?
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 »

Comme le résume Lecteur, L'erreur provient d'appel récursifs indésirables et comme mon code est boiteux ...... (faut excuser les débutants .. en Delphi :wink: )
Merci pour vos conseils éclairés :idea: Le "Application.ProcessMessages" me plait bien, je vais creuser.
Pour le Enabled à False, Le TImage "appercu" est mis comme cela au début de la fonction mais les cliks souris continus à passer ..... :(
=> Je vais tirer un listing complet et faire ronfler les neurones :!:
Je pense quand même le traduire en assembleur, Je gere mieu les evenements !
Merci à tous et A+
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 »

C'est pas normal ca par contre... Tu utilises quels évenements???
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 »

J'utilise MouseMove pour l'affichage des Coordonnées du curseur et MouseDown pour le déclanchement du tracé
En tete de cette fonction j'ai la ligne
if Drawing = False then begin
... Appel fonction de tracé => Cette fonction Place Drawing à True, Trace la lentille et replace Drawing à False
Voilou :roll: (c'est grave Docteur :wink: )
Il y a certainement quelque chose de mal géré ......
A+
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 chez moi l'événement ne se déclenche que si le composant Image est Enabled!

Si tu veux poster des extraits en zone prog n'hésite pas car pas évident de débugger un programme comme ca :D