[Logiciel 2D] Animatoon

Programmation d'applications complexes
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

G-Rom a écrit :
(Merci mon chien.... au passage)
Tu dis ca pour moi ? :mrgreen:
mais non c'est pour ça :
l'essentiel ici c'est la procedure rotate_image(id,x,Y,degres) ; qui elle l'est (multi_os)
les chiens aiment bien les os, et là, c'est multi-os :D :mrgreen:
je ne t'ai pas attendu pour pouvoir faire une rotation d'image. :mrgreen:
en plus tu ne gère même pas le filtrage bilinéaire... :mrgreen: :arrow: []
mais fais péter ta procédure alors :D
D'ailleurs, des données sur les filtrage bilinéaire tout ça, ça m'intéresse aussi ;)

Sinon, j'ai avancé sur mon petit soft, et j'ai ajouté :
- de la viscosité : en gros, la peinture reste plus longtemps sur le pinceau
- des tailles mini, rotation mini, etc.. pour les brush, pour le random.
- j'ai aussi optimisé le code et ça va plus vite qu'avant (pour la peinture)
- j'ai enfin commencé à modifier le panneau à gauche pour ajouter les gadgets nécessaires.

Viscosité :
Image

Et un screenshot de la dernière version (0.144) :
http://blendman.free.fr/dev/pb/animatoo ... n0.144.jpg

Et les sources (version 0.144) :
http://blendman.free.fr/dev/pb/animatoo ... _V0.144.pb
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: [Logiciel 2D] Animatoon

Message par G-Rom »

blendman a écrit :
G-Rom a écrit :
(Merci mon chien.... au passage)
Tu dis ca pour moi ? :mrgreen:
mais non c'est pour ça :
l'essentiel ici c'est la procedure rotate_image(id,x,Y,degres) ; qui elle l'est (multi_os)
les chiens aiment bien les os, et là, c'est multi-os :D :mrgreen:
Heu... j'ai la flemme de codé sur mobile , tu m'en veut pas? :mrgreen:

sinon , je pense que Dobro fait référence à ce topic :
http://www.purebasic.fr/french/viewtopi ... 7&start=15

Qui hélas , je ne sais pas pourquoi c'est retrouvé locké.
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

G-Rom a écrit :Heu... j'ai la flemme de codé sur mobile , tu m'en veut pas? :mrgreen:
roh l'aut', comment il joue aux playmobiles :mrgreen:

ok, je sors :arrow:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: [Logiciel 2D] Animatoon

Message par Backup »

G-Rom a écrit :
(Merci mon chien.... au passage)
Tu dis ca pour moi ? :mrgreen:
je ne t'ai pas attendu pour pouvoir faire une rotation d'image. :mrgreen:
en plus tu ne gère même pas le filtrage bilinéaire... :mrgreen: :arrow: []
mais qui c'est qui t'cause toi ? :roll:
ou qu'c'est qu'tu glisse ?

Bouffon ! :mrgreen:




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

Re: [Logiciel 2D] Animatoon

Message par blendman »

yop

Je suis tombé sur ce sujet concernant les effets sur les images (codes de LSI):
http://www.purebasic.fr/french/viewtopi ... 38#p133338

J'en ai profité pour adapter un des codes et faire un effet de saturation/désaturation, avec une petite trackbar :).
Merci LSI pour ses codes !

Du coup, je vais pouvoir intégrer par la suite des calques de réglages dans mon logiciel, la classe !

Il ne reste plus qu'à créer l'effet "niveau" et j'aurai tout ceux que je voulais :).

Le code pour la saturation/désaturation :

Code : Tout sélectionner

; code (effet noir et blanc) du Soldat Inconnu -2004
; adapté par blendman pour créer un effet de saturation/désaturation, avec trackbar, pour PB 4.60 (07/2011)

#img = 0
#Barre = 1
#track= 2

; on charge l'image
UseJPEGImageDecoder()
LoadImage(#img, "1.jpg")

; récupère la dimension de l'image
ImageX = ImageWidth(#img)
ImageY = ImageHeight(#img)
If imageX<310
  screenX = 310
Else
  screenX = ImageX
EndIf

Global clic.b

If OpenWindow(0, 0, 0, screenX, ImageY + 60,"saturation/désaturation", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   
  ImageGadget(#img, 0, 0, ImageX, ImageY, ImageID(#img)) 
  ProgressBarGadget(#Barre, 0, ImageY + 2, ImageX, 18, 0, ImageX)
  TrackBarGadget(#track, 3, imageY+30, screenX-5 ,20, 0,200)
  SetGadgetState(#track,100)
 
  ; On récupère l'image
  Dim Pixel.l(ImageX, ImageY)
  StartDrawing(ImageOutput(#img))
  For Px = 0 To ImageX-1
    For Py = 0 To ImageY-1
      Pixel(Px, Py) = Point(Px, Py)
    Next
    ; on fait progresser la barre
    SetGadgetState(#Barre, Px)
  Next
  StopDrawing()
 
  ; On initialise le niveau de contraste
  Niveau.f = 1
  niveauplus.f = 0.1
  sature = 1
   
  Macro couleurz()
    If bleu >255 : bleu = 255 : ElseIf bleu <0 : bleu = 0 : EndIf           
    If rouge >255 : rouge = 255 : ElseIf rouge <0 : rouge = 0 : EndIf           
    If vert >255 : vert  = 255 : ElseIf vert  <0 : vert  = 0 : EndIf 
  EndMacro
     
 
  Repeat
    Event = WaitWindowEvent()
       
    Select Event
       
     Case #PB_Event_Gadget
         Select EventGadget()
           Case 2 : Debug "trackbar"             
             Niveau = (GetGadgetState(#track)/100)
             Debug "reel :" + Str(GetGadgetState(#track))
             Debug "niveau :"+StrD(niveau)
             If niveau >1
               niveau+niveau*0.1
               sature = 1
               Debug "New niveau (+):"+StrD(niveau)
             ElseIf niveau<1 And niveau >=0
               sature = -1
               Debug "New niveau (-):"+StrD(niveau)
             EndIf
             
                               
         
       
        StartDrawing(ImageOutput(#img)) ; on dessine sur l'image
       
        ;**********************************************************************
        x = 0 ; on se place en x=0 sur l'image
       
        Repeat
         
          y = 0 ; on se place en y=0 sur l'image
         
          Repeat
           
            ; on récupère la couleur du point en x et y
            Couleur = Pixel(x, y)
            Rouge = Red(couleur)
            Vert = Green(couleur)
            Bleu = Blue(couleur)

                       
            ; On recalcule la nouvelle couleur en saturant ou en désaturant
            rouge1 =rouge
            vert1=vert
            bleu1=bleu
            couleur1 = (rouge1+ vert1+ bleu1)/3           
           
            rouge1 = Red(couleur1)
            vert1 = Red(couleur1)
            bleu1 = Red(couleur1)
                     
            Rouge = Rouge1 * (1-niveau) + Rouge * (niveau)
            Vert = Vert1 * (1-niveau) + Vert * (niveau)
            Bleu = Bleu1 * (1-niveau) + Bleu * (niveau)
            couleurz()

            If sature = -1
              If niveau <=1 And niveau >0
                Couleur = RGB(rouge,vert,bleu)             
              EndIf
            ElseIf sature = 1
              Couleur = RGB(rouge,vert,bleu)
            EndIf
           
            If sature = -1 And niveau <=0
              Couleur = Pixel(x, y)
              Rouge = Red(couleur)
              Vert = Green(couleur)
              Bleu = Blue(couleur)
              Couleur = (Rouge + Vert + Bleu) /3
              Couleur = RGB(Couleur, Couleur, Couleur)
            EndIf
           
           
            ; si la taille du nouveau pixel est positive
            Plot(x, y, Couleur) ; on dessine un carré qui fait le nouveau pixel de la même couleur que celle récupéré en x et y
           
            ; on se déplace sur l'image en y de la taille d'un pixel
            y = y + 1
           
          Until y >= ImageY ; si on a finit la colonne de l'image placé en x
         
          ; on se déplace sur l'image en x de la taille d'un pixel
          x = x + 1
        ;**********************************************************************
          ; on fait progresser la barre
          SetGadgetState(#Barre, x)
         
        Until x >= ImageX ; si on a traité toutes les lignes de l'image
       
        StopDrawing()
       
        ; on réaffiche l'image
        SetGadgetState(#img, ImageID(#img))       
             
      EndSelect         
EndSelect
       
Until Event = #WM_CLOSE ; on clique sur la croix, fin du prog

EndIf 
Encore merci Le Soldat Inconnu pour ses codes. Et merci à ceux qui ont posté sur ce sujet à nouveau et qui m'aident à améliorer ce logiciel (Dobro, G-rom, Denis ;)).
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: [Logiciel 2D] Animatoon

Message par G-Rom »

petite question , gère tu "undo-redo" ? question a la con non ? :mrgreen:
sinon , toujours dans un soucis de portabilité ( sa me tiens à coeur :D )
évite les constantes windows #WM... #Black #White , etc...
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

G-Rom a écrit :petite question , gère tu "undo-redo" ? question a la con non ? :mrgreen:
sinon , toujours dans un soucis de portabilité ( sa me tiens à coeur :D )
évite les constantes windows #WM... #Black #White , etc...
je ne gère pas encore de undo/redo. Je ne sais pas encore comment je vais gérer ça d'ailleurs :D.

Ok, pour les constantes, merci pour la remarque, car moi aussi ça me tient à coeur (j'ai ubuntu, et mes parents ont un mac, alors, j'espère que ce sera compatible tout OS :).
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: [Logiciel 2D] Animatoon

Message par Kwai chang caine »

Ah, mince. comme ce n'est pas ma procédure, je ne sais pas trop quel est le problème. Il me faudrait un peu plus d'informations ;).
Tu étais en écran maximisé ?
C'est quoi ton système ?
A ce moment la, j'avais VISTA
Et j’étais en maximisé, c'est exact (Trop fort le devin) :mrgreen:

Maintenant j'suis avec XP SP3 et ça marche :D
Merci BLENDMAN 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

Kwai chang caine a écrit :
Ah, mince. comme ce n'est pas ma procédure, je ne sais pas trop quel est le problème. Il me faudrait un peu plus d'informations ;).
Tu étais en écran maximisé ?
C'est quoi ton système ?
A ce moment la, j'avais VISTA
Et j’étais en maximisé, c'est exact (Trop fort le devin) :mrgreen:

Maintenant j'suis avec XP SP3 et ça marche :D
Merci BLENDMAN 8)
je n'ai pas testé sous un autre OS ;).

Je vais regarder avec seven si ça tourne :p (je n'ai pas vista pour tester).

Content que ça fonctionne pour toi ;).
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

salutch

voici une nouvelle version d'Animatoon (version 0.146).

Ajouts :
- outil pipette : comme dans photoshop, touche ctrl + clic gauche pour prendre la couleur.
- début du zoom, mais bugué car pas terminé (merci au passage à Kernadec ;))
- j'ai commenté le code en anglais pour les anglophones, en plus du français.

Sinon, j'ai fait une pitite vidéo rapido pour montrer un peu ce qu'on peut faire avec ce début de logiciel :
http://vimeo.com/26224326

Le code :
http://blendman.free.fr/dev/pb/animatoo ... _V0.146.pb
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: [Logiciel 2D] Animatoon

Message par Thyphoon »

très prometteur !! :o)
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: [Logiciel 2D] Animatoon

Message par jbernard13 »

Merci j'aime ton soft
tu l'as programmé avec la 4.60 beta3 , tu as pas rencontrer de bug?
Jbernard13
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

jbernard13 a écrit :tu l'as programmé avec la 4.60 beta3 , tu as pas rencontrer de bug?
pas de bug lié au fait que ce soit une béta.

Mais j'ai des bugs que je n'ai pas encore corrigé :).
Et il y a aussi des limitations que l'on essaie de contourner (kernadec, et d'autres m'aident et font eux aussi des tests avec le canvas gadget).
Par exemple, un truc qui serait vraiment bien ce serait :
- Zoom_image (#image, zoom_x, zoom_y,[flag]) (avec flag comme resizeImage())
- drawAlphaImage(#image, x,y,width, height, alpha, [flag]) (idem pour les flag).

Si on avait ces 2 choses là en plus, ce serait déjà génial :).
Et sinon, j'ai un bug avec la gomme : lorsque j'essaie de dessiner uniquement avec de l'alpha, ça merdouille, mais j'ai espoir de le corriger celui-ci :).
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: [Logiciel 2D] Animatoon

Message par jbernard13 »

J"ai voulu le tester , mais avec seven mais , j'ai un bug j'ai pas de curseur quand je lance le code .
Jbernard13
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: [Logiciel 2D] Animatoon

Message par blendman »

je vais regarder ça avec seven, mais c'est bizarre y'a pas de raison de ne pas avoir de curseur :)
Répondre