Effect de filtrage à l'affichage

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Eric
Messages : 79
Inscription : dim. 08/juil./2007 21:38
Localisation : Nord
Contact :

Effect de filtrage à l'affichage

Message par Eric »

Est-ce normale que l'image de fond subit un filtrage et devient flou à chaque redraw ?
Attention, je récupère l'image modifié avec GrabDrawingImage.

Existe il une autre méthode pour récupérer une image sans altération au prochain affichage ?
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Effect de filtrage à l'affichage

Message par G-Rom »

hola amigo, yé né pas comprendo :|
Sans code, tes explications ne sont claire que pour toi.
Avatar de l’utilisateur
Eric
Messages : 79
Inscription : dim. 08/juil./2007 21:38
Localisation : Nord
Contact :

Re: Effect de filtrage à l'affichage

Message par Eric »

Salut,

Voici les images qu'a besoin le prg.

Elements.png

Image


66901.png

Image

Code : Tout sélectionner

Enumeration elements
	#Vanne_Auto
	#Vanne_Electro
	#Vanne_Micrometrique
	#Pompe_Anneau_liquide
	#Pompe_a_palette
	#Pompe_de_circulation
EndEnumeration

Structure Obj
	Identifiant.i
	Position_x.i
	Position_y.i
	largeur.i
	hauteur.i
	Centre_Voyant_x.i
	Centre_Voyant_y.i
	Angle.i
	Alpha.i
EndStructure


InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(640,480,32,"Synoptique Images",#PB_Screen_WaitSynchronization)
UsePNGImageDecoder()
KeyboardMode(#PB_Keyboard_International)



Global NewList Objet.Obj()
Global Planche.l
Planche=CatchSprite(#PB_Any,?Planche_des_elements)

DataSection
	Planche_des_elements:
	IncludeBinary "Elements.png"
	Syno:
	IncludeBinary "66901.png"
	Elements:
	
	Data.i	0,0,27,17	;Vanne automatique
	Data.i	6,9			;Centre du voyant
	
	Data.i	29,1,57,15	;Vanne Micrométrique
	Data.i	14,7		; centre de la vanne
	
	Data.i 60,0,81,22
	Data.i 10,16
	
	Data.i	83,0,110,17
	Data.i	6,8
EndDataSection

Declare Charge_Objets()
Declare Affiche_Objets(Id.l)
;SpriteQuality(#PB_Sprite_NoFiltering)
Charge_Objets()
Id=0
a=0
Global Synoptique.l=CatchImage(#PB_Any,?Syno)
Global x,y
Repeat
	ExamineMouse()
	ExamineKeyboard()
	
	x=MouseX()
	y=MouseY()	
	a+MouseWheel()
	
	Debug a
	If KeyboardReleased(#PB_Key_Add)
		Id+1
		If Id>ListSize(Objet())-1
			Id=ListSize(Objet())-1
		EndIf
		Delay(20)
	ElseIf KeyboardReleased(#PB_Key_Subtract)
		Id-1
		If Id<-1
			Id=-1
		EndIf
		Delay(20)
	ElseIf KeyboardPushed(#PB_Key_LeftShift)
		a-1
		If a<0
			a=359
		EndIf
	ElseIf KeyboardPushed(#PB_Key_RightShift)
		a+1
		If a>359
			a=0
		EndIf
	EndIf
	If id>-1
		SelectElement(Objet(),Id)
		
		With Objet()	
			\Position_x=x
			\Position_y=y
			\Angle=a
			\Alpha=255
		EndWith
	EndIf
	
	ClearScreen(0)
	StartDrawing(ScreenOutput())
	DrawingMode(#PB_2DDrawing_Default )
	DrawImage(ImageID(Synoptique),0,0)
	DrawText(0,370,"changer l'angle avec LShift ou RShift",RGB(255,255,255))
	DrawText(0,390,"ID ="+Str(Id),RGB(255,0,0))
	StopDrawing()
	
	Affiche_Objets(Id)
	FlipBuffers()
	
	
	If MouseButton(#PB_MouseButton_Left) Or KeyboardPushed(#PB_Key_Return)
		StartDrawing(ScreenOutput())
		DrawingMode(#PB_2DDrawing_Default )
		GrabDrawingImage(Synoptique,0,0,640,350)
		StopDrawing()
		FlipBuffers()
	ElseIf MouseButton(#PB_MouseButton_Right) Or KeyboardPushed(#PB_Key_Delete)
		If ListIndex(Objet())>=0
			StartDrawing(ScreenOutput())
			DrawingMode(#PB_2DDrawing_Default )
			Box(x,y,Objet()\largeur,Objet()\hauteur,0)
			GrabDrawingImage(Synoptique,0,0,640,350)
			StopDrawing()
			FlipBuffers()
		EndIf
		
	EndIf	
	
Until KeyboardPushed(#PB_Key_Escape)
End

Procedure Charge_Objets()
	ClearList(Objet())
	Restore Elements
	For i=0 To 3
		AddElement(Objet())
		Read.i x
		Read.i y
		Read.i l
		Read.i h
		With Objet()
			DisplaySprite(Planche,0,0)
			\largeur=l-x
			\hauteur=h-y
			\Identifiant=GrabSprite(#PB_Any,x,y,\largeur,\hauteur)
			Read.i \Centre_Voyant_x
			Read.i \Centre_Voyant_y
			\Angle=0
		EndWith
	Next i
	ProcedureReturn
EndProcedure

Procedure Affiche_Objets(Id.l)
	If ListSize(Objet())>0 
		If Id>-1
			;SelectElement(Objet(),Id)
			With Objet()
				RotateSprite(\Identifiant,\Angle,#PB_Absolute)
				DisplayTransparentSprite(\Identifiant,\Position_x,\Position_y,\Alpha)
			EndWith
		Else
			StartDrawing(ScreenOutput())
			DrawingMode(#PB_2DDrawing_Outlined )
			Box(x,y,Objet()\largeur,Objet()\hauteur,RGB(255,255,255))
			StopDrawing()
		EndIf	
	EndIf
	ProcedureReturn
EndProcedure
Et voila ce qui se passe lors d'un clic de souris.

avant de toucher quoique se soit
Image

après plusieurs clic
Image


je ne comprends pas, c'est comme si j'aurais appliqué un filtre motion blur.
Dernière modification par Eric le jeu. 05/sept./2013 19:45, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Effect de filtrage à l'affichage

Message par falsam »

Windows 7 - Carte Vidéo GeForce 9600M GT
Pas de différence de couleur et aucun floutage après une trentaine de clics.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Effect de filtrage à l'affichage

Message par G-Rom »

Linux x64
Plantage, résolution non supportée.
Si j'étais toi , je travaillerais qu'avec les images ( plus lent, mais pas de problème lié au hardware )
Avatar de l’utilisateur
Eric
Messages : 79
Inscription : dim. 08/juil./2007 21:38
Localisation : Nord
Contact :

Re: Effect de filtrage à l'affichage

Message par Eric »

Désolé, mais je n'ai pas fais attention à la résolution des images à télécharger.
Je vais essayé sur une autre machine afin de voir si cela vient pas de ma configuration ou mes paramètres de carte graphique (Nvidia GTX580).

Est-ce que vous pouvez réessayer avec les nouvelles images.
Avatar de l’utilisateur
Eric
Messages : 79
Inscription : dim. 08/juil./2007 21:38
Localisation : Nord
Contact :

Re: Effect de filtrage à l'affichage

Message par Eric »

J'ai vu que la nouvelle béta est sortie. Je l'installe et j'essaye. :wink: plus problème d'affichage.
Merci, la Dream Team
et aussi merci au forum Fr
Répondre