Page 2 sur 11

Re: [Logiciel 2D] Animatoon

Publié : ven. 08/juil./2011 19:31
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

Re: [Logiciel 2D] Animatoon

Publié : ven. 08/juil./2011 19:37
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é.

Re: [Logiciel 2D] Animatoon

Publié : ven. 08/juil./2011 20:04
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:

Re: [Logiciel 2D] Animatoon

Publié : ven. 08/juil./2011 21:35
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:

Re: [Logiciel 2D] Animatoon

Publié : sam. 09/juil./2011 11:02
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 ;)).

Re: [Logiciel 2D] Animatoon

Publié : sam. 09/juil./2011 11:11
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...

Re: [Logiciel 2D] Animatoon

Publié : sam. 09/juil./2011 11:46
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 :).

Re: [Logiciel 2D] Animatoon

Publié : sam. 09/juil./2011 17:31
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)

Re: [Logiciel 2D] Animatoon

Publié : sam. 09/juil./2011 17:40
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 ;).

Re: [Logiciel 2D] Animatoon

Publié : dim. 10/juil./2011 10:59
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

Re: [Logiciel 2D] Animatoon

Publié : dim. 10/juil./2011 11:20
par Thyphoon
très prometteur !! :o)

Re: [Logiciel 2D] Animatoon

Publié : dim. 10/juil./2011 17:17
par jbernard13
Merci j'aime ton soft
tu l'as programmé avec la 4.60 beta3 , tu as pas rencontrer de bug?

Re: [Logiciel 2D] Animatoon

Publié : dim. 10/juil./2011 18:02
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 :).

Re: [Logiciel 2D] Animatoon

Publié : dim. 10/juil./2011 19:34
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 .

Re: [Logiciel 2D] Animatoon

Publié : lun. 11/juil./2011 9:13
par blendman
je vais regarder ça avec seven, mais c'est bizarre y'a pas de raison de ne pas avoir de curseur :)