Un photoshop Like !

Programmation d'applications complexes
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Un photoshop Like !

Message par Thyphoon »

Voici une reponse sur le MDI qui me donne plutôt envie d'abandonner la MDI pour retourner a un système a plusieurs fenêtre Classique ... ! Mais ce qui est currieux c'est que le rafraichissement d'une fenêtre MDI est plus propre que qu'une fenêtre classique.
http://www.purebasic.fr/english/viewtop ... =3&t=40321

Qu'en pensez vous ?
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Un photoshop Like !

Message par blendman »

salut

Je me permets de relancer ce sujet, car je réalise moi aussi en ce moment un petit logiciel de peinture 2D (plus proche de mypaint ou painter que photoshop, à vrai dire ;)).
(Il s'appelle animatoon : http://www.purebasic.fr/french/viewtopi ... =3&t=12067)

Tu as laissé le tien ?
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Un photoshop Like !

Message par Thyphoon »

non, non j'ai pas laissé tombé, il est mis de côté ! l'arrivé du canvasgadget va régler une bonne partie de mes problèmes :P
J'ai vu ton sujet animatoon ! c'est très sympa ! Moi j'aimerais réussir a faire un mélange de deluxe-paint (pour ceux qui on connu la version amiga) et de photoshop ! Je continue de penser que c'est tout a fait possible ! :P la seul chose difficile étant au niveau de la rapidité surtout avec un grand nombre de calque ... :)
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Un photoshop Like !

Message par blendman »

non, non j'ai pas laissé tombé, il est mis de côté ! l'arrivé du canvasgadget va régler une bonne partie de mes problèmes :P
problème de souris et de keyboard j'imagine ;)
J'ai vu ton sujet animatoon ! c'est très sympa ! Moi j'aimerais réussir a faire un mélange de deluxe-paint (pour ceux qui on connu la version amiga) et de photoshop ! Je continue de penser que c'est tout a fait possible ! :P
il y aurait un module d'animation ?
ce serait chouette ça :).
par contre, n'oublie pas ceux qui ont une tablette graphique, car un soft de dessin c'est fait pour eux :).
Mais là, il y a un soucis avec les screen, car le cursor part dans tous les ens et je ne sais pas comment on peut régler ce problème :(
la seul chose difficile étant au niveau de la rapidité surtout avec un grand nombre de calque ...
Oui, c'est un des problèmes majeur je pense.
Après, tout dépend de la méthode utilisée.
Si on pouvait utiliser le screen et les sprite3D en tant que calque, ça pourrait résoudre certains soucis.

Mais avec les images/canvas, je pense qu'il y aura des soucis avec beaucoup de calques, et les grands formats.

Et finalement, tu comptes utiliser les mdi ?
Moi aussi j'aimerai que ce soit portable et visiblement, les Mdi ne le sont pas (windows uniquement si j'ai compris), donc, j'hésite à les utiliser.

Personnellement, pour ouvrir plusieurs documents, je pense utiliser des onglets, comme dans les nouvelles versions de photoshop par exemple.
Par contre, je n'ai pas trouvé pour les menus flottants, peut être utiliser une nouvelle fenêtre ou un container gadget, je ne sais pas trop.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Un photoshop Like !

Message par Thyphoon »

blendman a écrit :problème de souris et de keyboard j'imagine ;)
tout a fait ! :)
il y aurait un module d'animation ?
oui ça m'aurait bien plus ! l'animation a la deluxe paint me manque ! :)
par contre, n'oublie pas ceux qui ont une tablette graphique, car un soft de dessin c'est fait pour eux :).
Mais là, il y a un soucis avec les screen, car le cursor part dans tous les ens et je ne sais pas comment on peut régler ce problème :(
n'ayant pas de tablette graphique... j'avoue que je ne sais pas .... normalement ça ne devrait que changer des coordonées de souris ...non ?
apres la gestion de la pression c'est autre chose ...

Si on pouvait utiliser le screen et les sprite3D en tant que calque, ça pourrait résoudre certains soucis.
j'avais utilisé le screen mais pas de sprite3D car on peut pas dessiner sur une texture ! ou on peut y arriver mais ça rame dur sur certaine machine
Mais avec les images/canvas, je pense qu'il y aura des soucis avec beaucoup de calques, et les grands formats.
pour une question de rapidité j'avais l'idée de travailler en arrière plan et sur une zone bien précise.
en gros je ne faisais des modifs que sur la zone changé .... d'abord sur une image appelé preview a la taille de l'affichage puis sur l'image réel !
mon idée était part la suite de faire une liste de modification qui se calculait en arrière plan !
Et finalement, tu comptes utiliser les mdi ?
non ça je fait comme si ça n'existait pas :P
maintenant le canvasgadget existe faut que je refasse des tests !
si tu me donne une adresse email en MP je peux t'envoyer le code quej'avais fait en utilisant le sceen
Personnellement, pour ouvrir plusieurs documents, je pense utiliser des onglets, comme dans les nouvelles versions de photoshop par exemple.
Par contre, je n'ai pas trouvé pour les menus flottants, peut être utiliser une nouvelle fenêtre ou un container gadget, je ne sais pas trop.
j'avoue que je ne m'étais pas plus penché que que ça sur l'ouverture de plusieur docs ...:P
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Un photoshop Like !

Message par blendman »

Thyphoon a écrit :
blendman a écrit :problème de souris et de keyboard j'imagine ;)
tout a fait ! :)
il reste le problème de la souris et du clavier pour les menus, hélas.
On n'a un #pb_eventtype_leftbuttondown (et ce genre de chose) que sur le canvas mais pas sur les autres gadgets :(

Du coup, je suis obligé d'utiliser des #WM_LBUTTONUP pour les menus.
Il manque encore quelques eventwindow() pour remplacer les #WM_LBUTTONUP (par exemple un #pb_event_leftbuttonup serait vraiment bienvenu pour la compatibilité car sous mac et linux, je ne connais pas l'équivalent).
oui ça m'aurait bien plus ! l'animation a la deluxe paint me manque ! :)
cool. Moi aussi pour animatoon, j'aimerai, dans une version très lointaine ajouter un module d'animation avec les calques :D.
par contre, n'oublie pas ceux qui ont une tablette graphique, car un soft de dessin c'est fait pour eux :).
Mais là, il y a un soucis avec les screen, car le cursor part dans tous les ens et je ne sais pas comment on peut régler ce problème :(
n'ayant pas de tablette graphique... j'avoue que je ne sais pas .... normalement ça ne devrait que changer des coordonées de souris ...non ?
oui, les coordonnées partent dans tous les sens.
A mon avis, c'est aussi lié au fait que sur les tablettes petites, il doit y avoir un système qui effectue un rapport entre la position du stylet sur la tablette et la positon de la souris sur l'écran.

Mais en tout, ça fonctionne très bien avec les images et canvas gadgets, mais pas du tout avec les screens et sprite, et c'est vraiment dommage.
apres la gestion de la pression c'est autre chose ...
pour ça, j'ai trouvé un code pour wacom :).
Mais ça bug toujours avec les screens et les sprites :(.
j'avais utilisé le screen mais pas de sprite3D car on peut pas dessiner sur une texture ! ou on peut y arriver mais ça rame dur sur certaine machine
ah oki. On n'a pas les surface directX alors avec PB j'imagine.
Car sur ma version faite avec GM, je dessinais avec des sprites3D, sur une surface directX, et avec ma tablette sans aucun problème.
pour une question de rapidité j'avais l'idée de travailler en arrière plan et sur une zone bien précise.
en gros je ne faisais des modifs que sur la zone changé .... d'abord sur une image appelé preview a la taille de l'affichage puis sur l'image réel !
mon idée était part la suite de faire une liste de modification qui se calculait en arrière plan !
ça a l'air vraiment bien commen technique !
il faudrait qu'on essaye de mettre ça au point ;).
Et finalement, tu comptes utiliser les mdi ?
non ça je fait comme si ça n'existait pas :P
maintenant le canvasgadget existe faut que je refasse des tests ![/quote]
si tu me donne une adresse email en MP je peux t'envoyer le code quej'avais fait en utilisant le sceen
c'est blendman@free.fr
mais je n'utilise pas les screens à cause des problèmes avec les tablettes graphiques, mais je regarderai quand même ;)
Par contre, je n'ai pas trouvé pour les menus flottants, peut être utiliser une nouvelle fenêtre ou un container gadget, je ne sais pas trop.
j'avoue que je ne m'étais pas plus penché que que ça sur l'ouverture de plusieur docs ...:P
j'ai trouvé pour les menus flottants une super technique, mais elle utilise un #WM_LBUTTONUP hélas.
Je n'ai pas encore trouvé d'équivalent en pb, car ça ne fonctionne que sur le canvas, mais ce serait bien que LbuttonUp et RbuttonUp soit détecté d'une manière générale.

Sinon, j'ai fait un essai d'interface à la photoshop, avec menu flottant et calque et ça fonctionne pas mal (pas terminé) :
http://www.purebasic.fr/french/viewtopi ... =1&t=12085

voiloutch :D
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Un photoshop Like !

Message par blendman »

Salut Thyphoon.

Si cela t'intéresse, j'ai réalisé plusieurs essais et je peux te filer les codes, pour que tu vois si tu pourrais t'en servir pour ton soft ;) :
- une gomme (brush et cercle)
- un système de brush (à revoir pour l'optimiser un peu)
- un système de calque : avec création, sélection du calque, visible, locké, blendmode (quelques uns)
- un système de menus flottants

Voilà, si tout ça t'intéresse, dis-le moi et je posterai les codes ;)

Sinon, si ça te dit, on peut le faire ensemble ce photoshop like. Moi, c'est surtout le système pour les grandes images et le système de calques qui m'intéresse dans un premier temps (mais pas en screen, car ça bugue encore avec certaines tablettes, en mode stylet).
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Un photoshop Like !

Message par Thyphoon »

Merci c'est très sympa :D ! Je suis ton sujet sur Animatoon !
ça serait avec un grand plaisir mais j'ai déjà le projet de ThothBox qui me prend le peu de temps libre qui me reste :roll: . Mais une fois le projet finis pourquoi pas ... :o)
As tu pensé a un système de plugin pour Animatoon, ça permettrait a ceux qui feulent créer des filtres ou des effets de les intéger dans ton appli facilement :o)

Le seul truc que j'ai pas resolu concernant les grosses images, c'est la limite des
8192x8192
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Un photoshop Like !

Message par blendman »

Thyphoon a écrit :Merci c'est très sympa :D ! Je suis ton sujet sur Animatoon !
ça serait avec un grand plaisir mais j'ai déjà le projet de ThothBox qui me prend le peu de temps libre qui me reste :roll: . Mais une fois le projet finis pourquoi pas ... :o)
As tu pensé a un système de plugin pour Animatoon, ça permettrait a ceux qui feulent créer des filtres ou des effets de les intéger dans ton appli facilement :o)
je ne sais pas du tout comment faire ça, mais j'aimerai beaucoup concevoir un système de plugins pour :
- les outils
- les paramètres
- les modes de fusion
- le système de calques et le rendu : par exemple pouvoir ajouter du grain au papier
- les filtres, les effets
- les calques de réglages

Mais comment dois-je faire ce système de plugins ? par des procédures dll ?
Si tu as quelques explications là-dessus, et même un pitit exemple tout simple je suis preneur :D
Le seul truc que j'ai pas resolu concernant les grosses images, c'est la limite des
8192x8192
hou, mais moi, 5000*5000 me suffise largement :D.
Tu utilises le screen j'imagine ? C'est possible dans ça ?
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Un photoshop Like !

Message par Thyphoon »

Pour les plugins oui je pense qu'il faut passer part une dll
moi je ferais une structure commune a ton application principal et a ta dll . dans cette structure les adresses de tes procédures aux quel le plugin a le droit d'avoir acces.
exemple

Code : Tout sélectionner

structure plugin
  *readPixel
  *writePixel
  *selectLayer
endstructure
ensuite tu détermine un certain nombre de procédure générique que chaque plugin aura obligatoirement
pluginAbout()
pluginVersion()
pluginOption()
plugindraw()

et dans celle dont tu as besoin tu leur passe ta structure definit avant dans le programme principal.
Ainsi le plugin peut utiliser des procédures dans ton programme principal avec un simple callfunction()
pour un exemple cherche sur le forum français et anglais, je sais qu'il y a un exemple de plugin ...
Répondre