Barbouille

Programmation d'applications complexes
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_Autopaint

Message par Backup »

Excellent Ced :)

j'incorpore :)


c'est exactement comme ça qu'il faut me présenter vos Styles :)

de cette façon c'est tres facile d'incorporer dans le code :)

Merci de ta contrib :)

[reedit] arf , j'allais oublier de te mettre dans la liste des coders :oops:
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Pure_Autopaint

Message par graph100 »

Effectivement, je me suis posé la question de l'utilisation du Canvas par rapport aux screens...
Comme je l'ai dis plus haut, la taille de la fenêtre que tu mets est beaucoup plus grande que mon écran, ce qui fait qu'il m'est impossible de tout visualiser.

Autre problème : l'image est redimensionnée, je ne sais pas si tu avais fait exprès, mais toutes les images sont redimensionnée à taille fixe, ce qui pose un soucis, avec par exemple les images postée par cederavic qui sont aplatie (peut etre était-elle comme ceci à la base).
Du coup je me suis mis à travailler sur l'image de base, et non sur un dessin redimensionné. Le canvas ne sert qu'à l'affichage, et n'a aucun autre intérêt que je pouvoir être redimensionné simplement pour coller à la fenêtre.

Le soucis principal de fonctionner sur un screen reste qu'il n'est pas possible de travailler sur une image en 3000x2000... ou alors de façon dallée, ce qui complique un minimum la chose !
Bref, des modifications motivées par un soucis du détails, mais il n'y a pas de soucis, et je comprend que ça puisse en dépasser certain :mrgreen:
Dobro a écrit :Merci grace a toi j'ai retiré un Bug de mon EPB :)
Ravi d'avoir pu t'être utile :D
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_Autopaint

Message par Backup »

graph100 a écrit :Effectivement, je me suis posé la question de l'utilisation du Canvas par rapport aux screens...
Comme je l'ai dis plus haut, la taille de la fenêtre que tu mets est beaucoup plus grande que mon écran, ce qui fait qu'il m'est impossible de tout visualiser.
la derniere Version du listing page 1 premier code
a une Fenetre de 800x600

Code : Tout sélectionner

Global larg_fenetre=800
global haut_fenetre=600
de plus tu peux la redimentionner , la taille est sauvé lorsqu'on quitte le prg :)
Autre problème : l'image est redimensionnée, je ne sais pas si tu avais fait exprès, mais toutes les images sont redimensionnée à taille fixe, ce qui pose un soucis, avec par exemple les images postée par cederavic qui sont aplatie (peut etre était-elle comme ceci à la base).
oui je redimensionne par defaut en 1024x768
il fallait bien que je le fasse , par contre tu as raison , je ne tiens pas compte de la proportion .. j'impose 1024x768 ...(vais voir ça ) :)
Le soucis principal de fonctionner sur un screen reste qu'il n'est pas possible de travailler sur une image en 3000x2000... ou alors de façon dallée, ce qui complique un minimum la chose !
Travailler sur de tres grosse résolution , n'est peut etre pas judicieux pour ce genre de programme
car trop de précision, fait perdre du temps, mais surtout risque de "casser" l'effet peinture ..

de toute façon on peut charger une image 3000x2000 , la redimensionner en 1024x768 pour appliquer les effets , et la remettre en 3000x2000 pour la sauvegarde ...
pour info je fais ça pour mon Pure Anaglyphe , des Graphistes l'utilisent, ils ne se sont jamais plaint, car le résultat est de toute façon différent apres traitement, que l'original , que ce soit pour faire un anaglyphe , ou une pseudo peinture .. :)
aucun point de comparaison possible ... entre avant le traitement et Apres :)

Bref, des modifications motivées par un soucis du détails, mais il n'y a pas de soucis, et je comprend que ça puisse en dépasser certain :mrgreen:
je sais que ce que tu as fait représente du temps et de l'investissement en matiere Grise
c'est pourquoi tu peux sans aucun problemes en faire une version t'appartenant , le code est sur le Forum pour ça ;)
Dobro a écrit :Merci grace a toi j'ai retiré un Bug de mon EPB :)
Ravi d'avoir pu t'être utile :D
ha mais carrement !
ta façon de coder est différente de la mienne , et pour le coup ça m'a aidé
jamais je n'ecris

Code : Tout sélectionner

 While: Wend 
sur la meme ligne de code :)
je l'ecrit en general comme ça

Code : Tout sélectionner

while
blabla
Wend
bref !

mon EPB (editeur pour Pure Basic) met le code en Forme en tenant compte de certains mots clef
lorsque je tombais sur "While" , je plaçais une tabulation pour les lignes Suivante , j'usqu'au "wend"
mais a cause de ta ligne le "Wend" etait sur la meme ligne , du coup pas de retrait de tabulations, EPB ne voyant pas le Wend
la tabulationen cours restait active
d'ou le décalage de plus en plus Grand dans mon Code mis en forme

je tenais compte du "If" pouvant etre sur la meme ligne que "Endif" , mais pas du While-wend
parce que je ne l'utilise jamais comme ça :lol:

il a fallut que je tombe sur ton code pour avoir le probleme :) comme quoi :)
Merci encore :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_Autopaint

Message par Backup »

la Version actuelle respect le Format d'origine de l'image
( travaille en 1024x768 )
mais la sauvegarde se fait au bon format d'origine ....
en Purebasic on est obligé de magouiller... mais ça marche :)
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Pure_Autopaint

Message par G-Rom »

Super sympa les gars ! :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_Autopaint

Message par Backup »

Merci , :)

je viens de mettre de l'ordre dans l'interface :)
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: Pure_Autopaint

Message par jbernard13 »

Excellent travail Dobro tu es vraiment doué en PB , j'admire ton talent .
Jbernard13
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: Pure_Autopaint

Message par kwandjeen »

Sympa ce code :wink:
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Pure_Autopaint

Message par G-Rom »

je pense que tu peu rendre ton code plus véloce en utilisant des tableaux à une dimension au lieu de 2

Code : Tout sélectionner

Couleur = Tab1D( x + largeur_tab * y)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_Autopaint

Message par Backup »

@G_rom : Merci , je retient l'idée !


je viens de changer le Code source ... accrochez vous :lol:

maintenant apres avoir chargé une image
vous pouvez comme avant lancer la peinture Automatique comme avant, en ayant choisi un Style ...

et .... vous pouvez aussi Apres ou Avant , dessiner a la souris directement sur l'ecran :D
ça va dessiner dans le Style courrant :) (on change de style en Dessinant :) )

je n'ai pas encore determiné la methode , concernant la taille et le nombre de coup de pinceau a chaque clique sur l'ecran :)

ça ne change rien en ce qui concerne la structure de code concernant les Styles , seul le pinceau du style se voit ajouter un condition suplémentaire

Code : Tout sélectionner

	if flag_bouton_on=0
				x_source=Random(largeur-1) ; lit une couleur de l'image d'origine
				y_source=Random(hauteur-1)
				Else
				x_source=xx_mouse  ; ici ajout du mode manuel
				y_source=yy_mouse
endif
il suffit de faire comme avant, vos style en ne touchant pas a l' entete :)


j'ai aussi ajouté un style "Pop_Art"
Image

:)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_Autopaint

Message par Backup »

Code mis a jour (calibrage des effet ,dessin a main levé ) ;)
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: Pure_Autopaint

Message par kwandjeen »

lol tu as mangé du cheval dans tes lasagnes :mrgreen:

OK je sors mais Bravo pour le code.
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Pure_Autopaint

Message par blendman »

classe :)

Pitite remarque :
- lorsque l'on dessine, ce que l'on dessine et le curseur ne sont pas au même endroit. Je n'ai pas encore trouvé où corriger ça, j'imagine qu'on doit le faire dans chaque procedure de style.
- lorsque je suis sorti de l'écran (ou de la fenêtre), le programme a planté, peut être serait-il intéressant d'ajouter une condition pour vérifier qu'on est bien à l'intérieur de l'écran ou de la fenêtre ^^

Sinon, concernant ce genre de chose (procédure peint_impres) :

Code : Tout sélectionner

         If De =1
            DrawingMode(#PB_2DDrawing_Default  )
            Box(x_source,y_source,Taille_x,Taille_y,Couleur_ref) ;une boite
         EndIf
         
         If De >=2 And De<4
            DrawingMode(#PB_2DDrawing_Default  )
            Circle(x_source,y_source,Taille_x,Couleur_ref) ; un rond
         EndIf
         
         If De >=4 And De<6
            If Phase<>6
               DrawingMode(#PB_2DDrawing_Outlined )
            EndIf
            Circle(x_source,y_source,Taille_x,Couleur_ref) ; un cercle
         EndIf
         
         If De >=6 And De<8
            If Phase<>6
               DrawingMode(#PB_2DDrawing_Outlined )
            EndIf
            Ellipse(x_source,y_source,Taille_x*4,Taille_x,Couleur_ref) ; une ellipse creuse verticale
         EndIf
(...)
Ne serait-il pas mieux de faire ça :

Code : Tout sélectionner

  If De =1
            DrawingMode(#PB_2DDrawing_Default  )
            Box(x_source,y_source,Taille_x,Taille_y,Couleur_ref) ;une boite
         
         
        elseif De >=2 And De<4
            DrawingMode(#PB_2DDrawing_Default  )
            Circle(x_source,y_source,Taille_x,Couleur_ref) ; un rond
         
         
         elseif De >=4 And De<6
            If Phase<>6
               DrawingMode(#PB_2DDrawing_Outlined )
            EndIf
            Circle(x_source,y_source,Taille_x,Couleur_ref) ; un cercle
         
         
         elseif De >=6 And De<8
            If Phase<>6
               DrawingMode(#PB_2DDrawing_Outlined )
            EndIf
            Ellipse(x_source,y_source,Taille_x*4,Taille_x,Couleur_ref) ; une ellipse creuse verticale
         EndIf
(...)
ça éviter de vérifier chaque if endif, non ?

bon boulot sinon :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Pure_Autopaint

Message par Backup »

je viens de mettre a jour le code

creation d'un mode "Reel"

rien de transcendant , il s'agit de pouvoir dessiner l'image Reel avant ou apres modification...
ça permet des retouches , pour rendre une partie de l'image net , ou bien pour effectuer une correction :)
l'application peut se faire en plusieurs fois si l'image n'etait pas entierement dessinée ..
ce mode a pour but d'etre utilisé en mode "dessin main levée"

@blendman : je ne suis pas sur que ça aide a l'eclaircissement du code

rien de pire pour moi qu'une serie de Else-if ....
je prefere nettement les Select-Case-Endselect

j'avoue travailler sur l'évolution du code pas trop sur son optimisation .. ( en clair je code avec mes doigts ... c'est un brouillon )
pour moi , l'optimisation, mise en forme d'un code se fait dans une Deuxieme phase :)


ps: les procedure de peinture
appartienne a leur auteur ...
chacun fait ce qu'il veux dedans

il faut juste garder a l'esprit qu'il y a 2 procedures

une representant le Style , et faisant appel a sa procedure "pinceau" (peint_xxxx)
voir l'explication dans le Style "Impress" et son pinceau .... :)
lorsque l'on dessine, ce que l'on dessine et le curseur ne sont pas au même endroit. Je n'ai pas encore trouvé où corriger ça
c'est pas un bug !!
c'est normal, cela viens de la différence qu'il y a entre le pointeur graphique (Directx ) et le Curseur souris
normalement faudrait que je n'affiche pas le curseur souris...
mais que j'affiche un "Sprite" curseur Graphique ;)
lorsque je suis sorti de l'écran (ou de la fenêtre), le programme a planté
8O cela n'arrive pas chez moi ... hum ... je vais surveiller ça


@kwandjeen : bah ... c'est du pop_art quoi :lol: , Andy Warhol n'etait pas toujours tres "net" :lol:
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: Pure_Autopaint

Message par kwandjeen »

Non lui, il préfère la soupe :mrgreen:
Répondre