Page 1 sur 1
Logiciel de creation terrain
Publié : dim. 11/janv./2009 21:01
par TARD
Bonjour a vous tous, j'ai un petit souci pour pouvoir enregistrer une image en nivaux de gris quelqu'un a t'il une idée ???
voila le probleme:
[url=http://sd-1.archive-host.com/memb ... in.zip[/b]
[/url]
dans le logiciel doont je fait il m'est impossible de lire les fichiers créer pour Terrain.png
Pour info:
Apprès avoir visualiser presser sur ESCAPE pour avoir la sourie
NE PAS INTERVENIR SUR L'IMAGE DU TERRAIN sinon le probleme dont je vous parle va arriver.(pour cela vous avez une sauvegarde de terrain.png dans nouveaux dossier

)
Re: Logiciel de creation terrain
Publié : lun. 12/janv./2009 0:20
par Anonyme
TARD a écrit :Bonjour a vous tous, j'ai un petit souci pour pouvoir enregistrer une image en nivaux de gris quelqu'un a t'il une idée ???
Tu récupère la couleur du pixel
Code : Tout sélectionner
Color = point(x,y)
Red = Red(Color)
Green = Green(Color)
Blue = Blue(Color)
tu fait une moyenne des trois composantes :
Tu balance en RGB :
@+
Publié : lun. 12/janv./2009 12:43
par Patrick88
et pour obtenir la teinte "cépia" des vieux appareils photo ? ou le filtre des nouveaux
pat
Publié : lun. 12/janv./2009 15:58
par Geo Trouvpatou
Salut.
Décidément j'ai une config spéciale.
Avec l'exe fournit d'origine ça plante et en compilant moi-même tout est OK.
Bye.
Publié : lun. 12/janv./2009 17:15
par TARD
Merci Cpl.Bator mais j'y avais deja penser mais cela ne fonctionne pas
Code : Tout sélectionner
Enumeration
#image_0
#image
#image_1
#window_0
#button_1
#button_2
EndEnumeration
UseJPEG2000ImageEncoder()
UseJPEGImageEncoder()
UsePNGImageEncoder()
UseJPEGImageDecoder()
UseTGAImageDecoder()
UsePNGImageDecoder()
UseTIFFImageDecoder()
Procedure Convertir(ImageID)
StartDrawing(ImageOutput(ImageID))
For y = 0 To ImageHeight(ImageID)-1
For x = 0 To ImageWidth(ImageID)-1
Color = Point(x,y)
Red = Red(Color)
Green = Green(Color)
Blue = Blue(Color)
Gray = (Red+Green+Blue)/3
Plot(x,y,RGB(gray,gray,gray))
Next
Next
StopDrawing()
EndProcedure
CreateImage(#image_0,513,513,8)
;Debug ImageDepth(#Image_0)
If OpenWindow(#Window_0, 0, 0, 600, 550, "Créateur de terrain",#PB_Window_ScreenCentered| #PB_Window_TitleBar )
ImageGadget(#image_1, 80, 0, 513, 513, ImageID(#image_0))
ButtonGadget(#button_1,0,10,80,20,"Ouvrir")
ButtonGadget(#button_2,0,40,80,20,"Fermer")
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Gadget
If EventGadget()=#button_2
End
EndIf
If EventGadget()=#button_1
fichier$=OpenFileRequester("ouvrir image","c:\","*.*",0)
LoadImage(#image,fichier$,8)
; Debug ImageDepth(#Image)
ResizeImage(#image,513,513)
SetGadgetState(#image_1,ImageID(#image))
Convertir(#image)
SetGadgetState(#image_1,ImageID(#image))
; Debug ImageDepth(#Image)
fichiersauve$=SaveFileRequester("sauvegarde image","c:\","*.*",0)
SaveImage(#image,fichiersauve$,#PB_ImagePlugin_PNG)
EndIf
EndIf
ForEver
EndIf
Ceci est pour transformer l'image choisie en nuance de gris mais ca ne le ramene pas a la profondeur de 8
Publié : lun. 12/janv./2009 17:20
par Anonyme
@Geo , il faut la dll engine3D.dll (elle est dans pb/compiler)
Ceci est pour transformer l'image choisie en nuance de gris mais ca ne le ramene pas a la profondeur de 8
Ton code transforme bien en nuance de gris , pourtant , qu'est ce que tu veut dire par profondeur de 8 ? car pb utilise du 24 bits pour encoder les images.
Publié : lun. 12/janv./2009 17:36
par Anonyme
et pour obtenir la teinte "cépia" des vieux appareils photo ? ou le filtre des nouveaux
pat
Tu converti en niveau de gris puis
tu mélanges avec une couleur brunie.
ComposanteFinale = (ComposanteA + ComposanteBrunie)/2
Publié : lun. 12/janv./2009 17:36
par TARD
La profondeur 8 bits veux dir qu'elle est bien en nuance de gris
regarde dans l'aide de pure basic pour ImageDepth()
Syntaxe
Resultat = ImageDepth(#Image)
Description
Renvoie le niveau de couleurs de l'#Image spécifiée. Ce niveau est mesuré en nombre de plans-couleurs que l'image possède. Par exemple, une image dont les couleurs sont codées sur 24 bits (16 millions de couleurs possibles) renverra la valeur 24. Une image en 256 couleurs renverra 8 (codage sur 8 bits). Une image en noir et blanc renverra 1.
Je pense que c'est pour cela que ça ne fonctionne pas
J'ai oublier de metre *.png a une ligne:
Code : Tout sélectionner
fichiersauve$=SaveFileRequester("sauvegarde image","c:\","*.png",0)
Publié : lun. 12/janv./2009 18:02
par Patrick88
merci
pat
Publié : lun. 12/janv./2009 18:24
par Anonyme
Qu'est ce que ca change pour ton éditeur de terrain , je ne saisi pas.
Ton image est nuancer de blanc et de noir , la hauteur de ton terrain va de 0 à 255 , quand tu lis la couleur pour définir la hauteur , tu prends n'importe quel composante (rouge,vert,ou bleu) , vu que c'est une nuance de gris , les composantes on la même valeur, de 0 a 255.
Publié : lun. 12/janv./2009 20:31
par Geo Trouvpatou
Effectivement Cpl.Bator c'était bien "Engine3D.dll" manquant qui faisait planter le tout.
Merci.
Bye.
Publié : lun. 19/janv./2009 20:09
par TARD
Voici une petite nouvelle version mais j'ai creer une partie avec dreamotion3D donc voici le lien:
http://www.dreamotion3d.com/
Ou alors voici mon lien:
Voir le Fichier : PureBasicDM3D.zip
Le logiciel :
Voir le Fichier : Terrain_75.zip
Si une personner pouvant m'aider a compiler le code car l'executable me demande le fichier dreamotion3d.dll
Merci et dite vos impréssion