@Ar-s : ARg !!
en faite , c'est de ma faute ,j'aurai du définir le Truc ....
mais pour ma défense j'ai conçut le principe en meme temps que je codais
je vais donc établir le Systeme de sorte que vous compreniez ou je veux en Venir
(prenez le temps de lire il y en a une tartine

)
une Brosse = une image Png 128x128 : fond Transparent
la toile = l'ecran sur lequel ont Dessine (le Canvas)
le Style = Procedure qui va definir les Phases de construction d'un Tableau (un style est en fait une collection de Phases
les Phases = sont des étapes de creation a l'interieur du Style chaque phase peut appeler un pinceau et changer une taille de pinceau
Exemple de phase dans un style :
Code : Tout sélectionner
SetGadgetText(#Gadget_text, "Phase 1/6")
Taille_x=128 ; c'est un brush (128x128)
Taille_y=128
Transparence =255
phase=1
nombre_de_coup_de_pinceau=500
annule()
Peint_brosse_1(largeur,Hauteur,nombre_de_coup_de_pinceau,Taille_x,Taille_y, 600,Transparence ,image_tab())
le Pinceau = procedure qui sera Exploité par la procedure
Style
Exemple de pinceau (utilisé avec une Brosse )
Code : Tout sélectionner
if IsImage(#brosse_1_co); la copie a eu lieu
ResizeImage(#brosse_1_co,taille_x,taille_y) ; on met le brush a la bonne taille
DrawAlphaImage(imageId(#brosse_1_co),x_source,y_source,Transparence)
Endif
voila rien d'autre pour faire un Style
donc.. la liste du prg Sert a "Lister" les Styles
de sorte que l'utilisateur n'ait pas a se prendre la tete , il choisi un Style ,il Lance le Protocole de Dessin
soit automatique , soit en Semi-Automatique ( un automatique controlé )
soit en mode Manuel , qu'on peut considérer comme un mode de retouche
voila , le prg a actuellement, une Façon de procéder , qui tourne bien , et est tres Stable dans son Principe
pour un créateur de Style (comme Cederavick , BlendMan .. et d'autres je l'espere )
le Style est un Procedé de fabrication d'une "Peinture"
on peut dans un Style utiliser tout les Pinceaux Actuellement dans le prg
un pinceau peut lui , utiliser les Formes de la bibliotheque 2D (Circle,ellipse,etc ... ) mais Aussi des Brosses
voila ou je veux en venir ,
il n'y a AUCUNE Raison , de mettre les Brosses dans la liste des Styles
( au passage ton code fout le bazars total , dans le choix des Styles, on click un Style , et c'est un autre qui Demarre !
forcement, ils n'ont rien a faire là

)
Pure_Autopaint, n'as pas pour vocation d'etre un logiciel de Dessin au sens , je choisi une brosse , et je peint ....
mais un logiciel qui converti une image en Style peinture ...
je choisi un Style et je peint , ou je laisse peindre l'ordinateur
ça n'a pas de sens , de mettre a disposition de l'utilisateur les Brosses directement ...
il faut lui proposer un
Style ! qui lui, de façon invisible pour l'utilisateur, contiendra un ou plusieurs Pinceaux, qui eux contiendront une ou plusieurs Brosses
j'ai laissé les Brosses dans le Dossier des Brushs pour vous (codeur,Createurs de Styles ) puissiez avoir accés a la creation de Brosses
pour qu'ensuite vous les utilisiez dans vos Pinceaux , pour qu'ensuite Vos Styles , ... et les miens , puisse les utiliser aussi ...
a l'image du peintre qui se creer ses Brosses pour Tamponner sa toile avec

plus de formes, plus de possibilités , plus de choix
mais ces Brosses , ne doivent pas etre Accessible aux utilisateurs !!
dans l'avenir ,je comptais les intégrer au prg (include) / je vais paut etre retenir ton Scanner de dossier de Style
pour eventuellement creer un Style "De base" qui pourrai alors etre utilisé ... mais faut que je pense le truc ..c'est pas clair dans ma tete
Seule les Styles doivent etre dans la liste et sont accessible a l'utilisateur

... en esperant avoir été clair dans l'explication de mon prg
les Styles , ainsi que le Pinceaux correspondant, doivent respecter une certaine Architecture
tout ce qui est entre les Balises ;****** ne pas Toucher ****** , ne doivent pas etre touché car ce sont des lignes de codes
indispensable pour l'utilisation du prg ( mode manuel,semi-auto, Automatique )
l'ideal c'est d'éviter d'utiliser une image a la place de la toile (le canvas) , pour dessiner ... comme l'a fait Cederavick ( bon ça marche bien )
mais lorsqu'il l'a fait, je n'avais pas encore defini cela

sinon ça complique le dessin a la main ....
enfin , si vous arrivez a faire un Style qui marche dans les 3 modes du prg , n'hesitez pas a mettre les 2 procedures de votre styles...
pour intégrer tes nouvelles Brosses il te suffit de copier la Procedure Le style brosse_1
de lui changer son nom ( Procedure brosse_1(Largeur, HAuteur, Array image_tab(2)) )
tu lui donne le nom que tu veux ...
tu change les differentes Phase du pinceau
ensuite tu vas dans ton nouveau pinceau ( les procedures qui commence par "peint_" )
tu copies le procedure peint_brosse_1(........)
tu lui donne le meme nom que le Style
et tu indique le type de Brosse que tu veux utiliser
comme ici extrait du code :
Code : Tout sélectionner
if IsImage(#brosse_1_co); la copie a eu lieu
ResizeImage(#brosse_1_co,taille_x,taille_y) ; on met le brush a la bonne taille
DrawAlphaImage(imageId(#brosse_1_co),x_source,y_source,Transparence)
Endif
sinon tu me laisse faire , je les intégrerai dans le code (sous forme de pinceau) , et tu n'aura plus qu'a modifier tes styles et les Calibrer comme tu veux ...
tout ça peut parait assez lourd a lire, mais dans le principe c'est super simple
aucune raison de changer le Code du programme , seul les procedures de Styles et de pinceau sont a faire ...
je conçois que l'architecture que je dépeint (sans jeux de mots ) n'est pas forcement évident, mais au fond
si tu regarde bien , c'est simple , au lieu de cherche a mettre a dispo les Brosses , directement , tu les proposes dans un Style
utilisez de préférence comme modèle de construction soit les procédures ( brosse_1() et peint_brosse_1() ) pour l'utilisation d'une Brosse
et je suppose que dorénavant ce sera la norme ...car uil est plus facile de faire une forme de Brosse que de coder avec la lib 2D de purebasic

)
soit les procédures ( Expressionnisme1() et peint_impres() ) pour les courageux de la librairie 2D de Purebasic
je terminerai en disant : vous pouvez faire Vos version de Ce programme
je l'ai fait openSource pour cette raison , la seule choses , si vous faites des styles intéressant, partagez les ici
@kernadec :
oui , bien sur , les scrollArea pourraient etre une solution , mais .. pas tres User Friendly je trouve
lorsqu'on a une tablette Graphique , c'est pas Geant de Dessiner sur une partie de la toile
et de devoir Scroller pour continuer
de plus ça pose un autre problème (surtout depuis l'ajout des Brosses )
une haute résolution ralentirai Gravement la totalité du prg ...
pour le moment, je trouve que ça le fait bien
on met l'image en 1024x768 , on travaille dessus , on sauve , et a la sortie l'image retrouve la résolution qu'elle avait au depart
lorsque je fait un prg , je me met a la place de Frenchy pillou

je veux qu'il ne se prenne pas la tete pour savoir comment ça marche
si ça vous intéresse, et pour comprendre ce que je veux faire , voici le prg qui m'a inspiré
http://dynamic-auto-painter.fr.malavida.com/
il est Shearware , mais tout fonctionne , il y a juste un Bandeau sur l'image a la Sauvegarde