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 ?
Effect de filtrage à l'affichage
Re: Effect de filtrage à l'affichage
hola amigo, yé né pas comprendo
Sans code, tes explications ne sont claire que pour toi.

Sans code, tes explications ne sont claire que pour toi.
Re: Effect de filtrage à l'affichage
Salut,
Voici les images qu'a besoin le prg.
Elements.png

66901.png

Et voila ce qui se passe lors d'un clic de souris.
avant de toucher quoique se soit

après plusieurs clic

je ne comprends pas, c'est comme si j'aurais appliqué un filtre motion blur.
Voici les images qu'a besoin le prg.
Elements.png

66901.png

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
avant de toucher quoique se soit

après plusieurs clic

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.
- falsam
- Messages : 7317
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Effect de filtrage à l'affichage
Windows 7 - Carte Vidéo GeForce 9600M GT
Pas de différence de couleur et aucun floutage après une trentaine de clics.
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Effect de filtrage à l'affichage
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 )
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 )
Re: Effect de filtrage à l'affichage
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.
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.
Re: Effect de filtrage à l'affichage
J'ai vu que la nouvelle béta est sortie. Je l'installe et j'essaye.
plus problème d'affichage.
Merci, la Dream Team
et aussi merci au forum Fr

Merci, la Dream Team
et aussi merci au forum Fr