des nouvelles de la version 4

Sujets variés concernant le développement en PureBasic
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

@Cpl.Bator
Sympa comme effet !

Dri :10:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

joli :)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

@Cpl Bator

Sympatique comme effet visuel.

Une petite question, comment as-tu généré la DataSection ?

A+
Guimauve
Anonyme

Message par Anonyme »

La datasection à été generer avec une image faite sous adobe ^^
je lis l'image pixel par pixel, j'ecrit dans un fichier texte la datasection puis je le colle dans mon code.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Cpl.Bator a écrit :La datasection à été generer avec une image faite sous adobe ^^
je lis l'image pixel par pixel, j'ecrit dans un fichier texte la datasection puis je le colle dans mon code.
j'avais fait ça ya quelques temps
ça transforme une image BMP en listing purebasic "Data.pb"
le listing de lecture de l'image est directement generé !! (du code qui ecrit du code ) , ya plus qu'a copier-coller

si ça peut te servir !! ....


Code : Tout sélectionner


; code by Dobro
Declare SetStringManipulationBufferSize(Bytes)

SetStringManipulationBufferSize(1048576)



If OpenWindow(1, 0, 0, 200, 50, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget , "")
  
  NomFichier$ = OpenFileRequester("dobro_datagenerator", "c:", "Fichiers image|*.bmp", 0 )
  
  If LoadImage(0, NomFichier$)
    Hauteur = ImageHeight()
    Largeur = ImageWidth() 
  num=CreateFile(#PB_Any,"data.pb") :; ceci ecrit le fichier pb (txt) pour etre charge dans l'editeur !!
      WriteStringN("; codé Par Dobro img to data"):; ecrit la premiere ligne de code
      WriteStringN("Declare WindowCallback(WindowID,message,wParam,lParam)")
      WriteStringN("largeur="+Str(Largeur)):; ecrit la variable
      WriteStringN("hauteur="+Str(Hauteur))
      WriteStringN("CreateImage(1, Largeur, Hauteur)") 
      
      WriteStringN("For i = 0 To Largeur -1")
      WriteStringN("  For j = 0 To Hauteur -1 ")
      WriteStringN("    Read a.l ")
      WriteStringN("    If StartDrawing(ImageOutput())")
      WriteStringN("      Plot(i,j,a.l) ")
      WriteStringN("      StopDrawing() ") 
      WriteStringN("    EndIf") 
      WriteStringN("  Next j")
      WriteStringN("Next i")
      
      WriteStringN(" titre$="+Chr($22)+NomFichier$+Chr($22)) 
      ; dessous: genere le code qui permet de relire les datas !!
      ; ouaaa du code qui s'autoecrit !!! :-D
      WriteStringN("If OpenWindow (1, 0, 0, Largeur, Hauteur, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget,titre$)")
      WriteStringN("  SetWindowCallback(@WindowCallback())  ") 
      WriteStringN("  If StartDrawing(WindowOutput())") 
      WriteStringN("    DrawImage(UseImage(1), 0, 0)  ") 
     WriteStringN("  StopDrawing() ") 
      WriteStringN("  EndIf")   
      WriteStringN("  Repeat") 
      WriteStringN("  Until WaitWindowEvent()= #PB_EventCloseWindow") 
      WriteStringN("EndIf ") 
      WriteStringN("End ") 
      
      WriteStringN("Procedure WindowCallback(WindowID,message,wParam,lParam)") 
      WriteStringN("  res=#PB_ProcessPureBasicEvents") 
      WriteStringN("  Select message ") 
      WriteStringN("  Case #WM_PAINT") 
      WriteStringN("  StartDrawing(WindowOutput())") 
      WriteStringN("    DrawImage(UseImage(1), 0, 0)  ") 
      WriteStringN("  StopDrawing() ") 
      WriteStringN("  ProcedureReturn #True  ") 
      WriteStringN("  EndSelect") 
      WriteStringN("  ProcedureReturn res") 
      WriteStringN("EndProcedure ")  
      ;************************ 
      
      Resultat = StartDrawing(WindowOutput())
      DrawText("encodage en cours "+Chr(10)+" attendre la fermeture de cette fenetre") 
      StopDrawing()
      
      WriteStringN("DataSection") :; commence la section des data
      
      For i =0 To  Largeur -1
        ligne.s="data.l "  ; insere la fonction data.l avant les valeurs  
        For j = 0 To Hauteur-1
          StartDrawing(ImageOutput() )
          ligne.s=ligne.s+Str(Point(i, j))+",":; met des virgules entre les datas
          StopDrawing()
        Next j
        ligne.s=Left(ligne.s, Len(ligne.s)-1) :; retire la derniere virgule de la ligne
        WriteStringN(ligne.s):; ecrit une ligne entiere de data
      Next i 
      WriteStringN(" "):; saute une ligne vide
      WriteStringN("EndDataSection") :;ecrit la fin de section data 
      CloseFile(num)
    EndIf
    CloseWindow(0)

EndIf

End 


Procedure SetStringManipulationBufferSize(Bytes)
  PBStringBase.l = 0
  PBMemoryBase.l = 0
  !MOV eax, dword [PB_StringBase]
  !MOV [esp+4],eax
  !MOV eax, dword [PB_MemoryBase]
  !MOV [esp+8],eax
  HeapReAlloc_(PBMemoryBase, #GMEM_ZEROINIT, PBStringBase, Bytes)
  !MOV dword [_PB_StringBase],eax
EndProcedure 
Dernière modification par Backup le sam. 21/janv./2006 22:41, modifié 2 fois.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

WoaW Cpl.Bator le meilleur en effet que se soit en dbp ou en purebasic #hello
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

InitSprite3D() ne veut pas s'initialiser O_o
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

C'était juste par curiosité.

Mais je prend une copie de ton code Dobro, elle peut toujours servir.

Merci

A+
Guimauve
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

alors elle sort cette version
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

lundi !
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

8O non ? c'est vrai ?!? me suis meme pas encore fai a la version 3 qu'elle sort déjà :lol:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

euh c'est une longue histoire dont je ne suis même pas sûr d'avoir suivi le début :)

en fait je fais référence à une rumeur qui court sur le forum anglais
monday ,qu'ils disent là bas .

mais on ne sait pas lequel :)

si tu fais une recherche sur monday tu vas trouver pas mal de post dont

http://forums.purebasic.com/english/vie ... ght=monday
http://forums.purebasic.com/english/vie ... ght=monday
http://forums.purebasic.com/english/vie ... ght=monday
http://forums.purebasic.com/english/vie ... ght=monday

Et l'origine du monday doit être ici je crois
http://forums.purebasic.com/english/vie ... ght=monday
Dernière modification par comtois le sam. 21/janv./2006 22:15, modifié 3 fois.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

lol ok

Sinon Dobro ton code marche mais bon faut déjà enlever les quelques balise [/color] du bbcode qui avait en trop lol mais bon apres quand j'ai choisi mon image, le programme se ferme et plus rien ne se passe... et je fai copier coller et il n'y a rien dans le presse papier a part le code que j'avai copier avant... :cry:
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Faut sauvegarder le code de Dobro quelque part, l'exécuter. Un fichier nommé "Data.pb" va être créer dans le même répertoire. C'est le fichier qui contient la DataSection de l'image sélectionné.

A+
Guimauve
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Pardon , ce code date de vieux !! il restait un bug , que je viens de corriger !!


pour repondre a la question ce programme genere un listing purebasic
avec comme nom "data.pb" , je n'utilise pas le press papier , c'est un fichier qui est generé
ce fichier est un prg qui contien l'ouverture d'une fenetre+callback
+l'image en Data !! bref ça genere les data + le prg pour les lires...

en general le fichier est generé a coté de l'endroit ou ce trouve le prg !!

(fait une recherche avec "Data.pb")
mais avant recomence l'operation avec le nouveau listing que je viens de déposer (non-colorisé) :)


@guimauve : ya pas de problem c'est fait pour ça :D
mais recupere le dernier listing en date !! (correction il manquait un stopdrawing ! c'est balo !! :D)
Dernière modification par Backup le sam. 21/janv./2006 22:51, modifié 1 fois.
Répondre