WallChanger 1.2
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
L'image est agrandie comme quand tu sélectionne "étirée" dans Affichage / arrière plan.Gillou a écrit :Par contre il me semble que l'image n'est pas redimensionnée proportionnellement
De plus j'ai le coin supérieur gauche de l'image ou j'ai un trait rouge oblique d'une dizaine de pixel?
Est-ce du à ma résolution? 1680x1050?
Pour le problème du trait rouge c'est du à une ancienne version ou j'avais oublié d'enlever cette ligne de debuggage, donc download la dernière version et ce trait disparaitra (t'as du télécharger pile au mauvais moment).
Merci pour vos remarques à tous les 2!
Lio

Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
Effectivement, je viens de regarder et c'est le redimensionnement de Windows qui est pas extra, y'aurait pas moyen d'intégrer une option de choix du format d'affichage? Etirer, Agrandissement proportionnel, Mosaïque sans passer par les paramètres de l'affichage comme dans le code qui suit?
Procedure SetWallpaper(FileName.s, TempFileBMP.s, BackgroundColor.l = $FFFFFF, Mode.l = 1) ; Mode: 1=Etirer, 2: Proportionnel, 3:Mosaïque
Protected ImageIn.l, ImageOut.l, W, H
ImageIn = LoadImage ( #PB_Any , FileName)
If IsImage (ImageIn)
W = ImageWidth (ImageIn)
H = ImageHeight (ImageIn)
WS = GetSystemMetrics_ ( #SM_CXSCREEN )
HS = GetSystemMetrics_ ( #SM_CYSCREEN )
If Mode = 1 ; ETIRER
ResizeImage (ImageIn, WS, HS, #PB_Image_Smooth )
If SaveImage (ImageIn, TempFileBMP, #PB_ImagePlugin_BMP )
FileName = TempFileBMP
Else
Warning( "Can't convert image to BMP file !" )
EndIf
ElseIf Mode = 2 ; PROPORTIONNEL
ImageOut = CreateImage ( #PB_Any , WS, HS)
If StartDrawing ( ImageOutput (ImageOut))
Box (0, 0, WS, HS, BackgroundColor)
WC.f = WS / W
HC.f = HS / H
If WC > HC
DrawImage (ImageOut, Round ((WS - Round (HC * W, 0)) / 2, 0), 0, Round (HC * W, 0), HS)
Else
DrawImage (ImageOut, 0, Round ((HS - Round (WC * H, 0)) / 2, 0), WS, Round (WC * H, 0))
EndIf
StopDrawing ()
If SaveImage (ImageOut, TempFileBMP, #PB_ImagePlugin_BMP )
FileName = TempFileBMP
Else
Warning( "Can't convert image to BMP file !" )
EndIf
FreeImage (ImageOut)
EndIf
Else ; MOSAIQUE
ImageOut = CreateImage ( #PB_Any , WS, HS)
If StartDrawing ( ImageOutput (ImageOut))
Box (0, 0, WS, HS, BackgroundColor)
Col = Round (WS/W, 1)
Row = Round (HS/H, 1)
For X = 0 To Col-1
For Y = 0 To Row-1
DrawImage ( ImageID (ImageIn), X*W, Y*H)
Next
Next
StopDrawing ()
If SaveImage (ImageOut, TempFileBMP, #PB_ImagePlugin_BMP )
FileName = TempFileBMP
Else
Warning( "Can't convert image to BMP file !" )
EndIf
FreeImage (ImageOut)
EndIf
EndIf
FreeImage (ImageIn)
SetWallpaperBMP(FileName, "2" )
ProcedureReturn #True
Else
Warning( "This file is not a picture or does not exist :" + #CRLF$ + FileName)
ProcedureReturn #False
EndIf
EndProcedure
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Si je vais inclure ça, tester puis après updater tout cela.Gillou a écrit :Effectivement, je viens de regarder et c'est le redimensionnement de Windows qui est pas extra, y'aurait pas moyen d'intégrer une option de choix du format d'affichage? Etirer, Agrandissement proportionnel, Mosaïque sans passer par les paramètres de l'affichage comme dans le code qui suit?
Merci pour cette remarques et ce code
Lio

Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Grâce à l'idée et la procédure de Gillou, la version 1.2 est maintenant disponible, toujours au même lien : WallChanger 1.2. Maintenant donc il est possible de définir le format d'affichage : étiré, maximisé ou mozaic.
Enjoy !
Lio
Enjoy !
Lio

Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Nouvelle version. Juste quelques modifications:
/Lio
- ADD: style d'image: centré (sans redimensionnement)
- FIX: Le générateur aléatoire de PB doit être initialisé selon le temps depuis lequel le PC tourne. Hors si le programme est lancé au démarrage, il sera exécuté à peu près au même moment à chaque démarrage. Là je me base sur la date !
/Lio
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
petit probleme a résoudre cependant ! (sous XP)
lors du changement d'image
celle ci s'affiche devant toute aplication en activité !!
c'est embétant !
j'ai mozilla en plein ecran , je surf , et d'un coup , je vois apparaitre l'image du fond de bureau qui se change , en plein ecran, qui passe devant mozilla !!
puis disparait , me réaffichant mon mozilla
faudrai pas que pendant le changement d'image , l'image passe devant les applications !!

lors du changement d'image
celle ci s'affiche devant toute aplication en activité !!
c'est embétant !
j'ai mozilla en plein ecran , je surf , et d'un coup , je vois apparaitre l'image du fond de bureau qui se change , en plein ecran, qui passe devant mozilla !!
puis disparait , me réaffichant mon mozilla

faudrai pas que pendant le changement d'image , l'image passe devant les applications !!


-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Salut Dobro,
J'ai pas tout bien compris...
Par contre WallChanger est mis automatiquement en pause dès qu'il détecte une application en plein écran (visionnage d'un film, etc...). Il attend que plus aucaun programme se soit en plein écran et il change directement pour une nouvelle image.
Qu'est-ce que tu appelles plein écran Mozilla ? = touche F11 ? C'est quoi qui déconne car j'ai testé et ca marche (sous XP x32 SP2 et XP x64).
/Liå
J'ai pas tout bien compris...

Par contre WallChanger est mis automatiquement en pause dès qu'il détecte une application en plein écran (visionnage d'un film, etc...). Il attend que plus aucaun programme se soit en plein écran et il change directement pour une nouvelle image.
Qu'est-ce que tu appelles plein écran Mozilla ? = touche F11 ? C'est quoi qui déconne car j'ai testé et ca marche (sous XP x32 SP2 et XP x64).
/Liå
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Super bizarre ce comportement... Sur mes 3 PCs je n'ai jms constaté ce problème.
Le seul que j'ai c'est lorsque Media Player Classic lit un DivX (mais pas en plein écran). Lors du changement d'image l'image dans le lecteur est remplacée par une image unie. Mais il suffit de mettre manuellement WallChanger en pause pour que la lecture ne soit pas perturbée...
/Liå
Le seul que j'ai c'est lorsque Media Player Classic lit un DivX (mais pas en plein écran). Lors du changement d'image l'image dans le lecteur est remplacée par une image unie. Mais il suffit de mettre manuellement WallChanger en pause pour que la lecture ne soit pas perturbée...
/Liå
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
bon j'enqueterai plus tard , une partie de l'electricité de ma maison a sauté !
et bien sur la piece ou se trouve ma tour principale est concerné !
je viens tout juste de trouver ou se trouve le dijoncteur differentiel
ces cons sont allez le mettre dans un endroit ou je ne peux me glisser
car en hauteur (~ 2m,50) et au dessus d'une des pieces de la maison
cette piece (une des salles de bains) etant un pavé dans une piece plus grande ..
comme la surface de ce "pavé" arase le toit de la maison , il faut que je trouve un gamin
dans le quartier , pour l'envoyer ré-enclencher le dijoncteur !!
c'est pratique !!
si je tenais l'electro du dimanche qui m'a pondu un truc pareil !!
c'est le soucis des vielles maison ça !
et bien sur la piece ou se trouve ma tour principale est concerné !
je viens tout juste de trouver ou se trouve le dijoncteur differentiel
ces cons sont allez le mettre dans un endroit ou je ne peux me glisser
car en hauteur (~ 2m,50) et au dessus d'une des pieces de la maison
cette piece (une des salles de bains) etant un pavé dans une piece plus grande ..
comme la surface de ce "pavé" arase le toit de la maison , il faut que je trouve un gamin
dans le quartier , pour l'envoyer ré-enclencher le dijoncteur !!

c'est pratique !!
si je tenais l'electro du dimanche qui m'a pondu un truc pareil !!

c'est le soucis des vielles maison ça !

pour en revenir a u petit probleme rencontré , je crois que j'ai trouvé !
j'avais dans les parametres de ma carte graphique (nvidia geforce 7600 GT)
le parametre "activer la combinaison d'ecriture" d'activé !!
depuis que j'ai désactivé ce parametre (je sais meme pas a quoi il sert)
ton prg ne s'impose plus par dessus mon navigateur !!
c'est toujour bon a savoir
a ajouter , lorsqu'on met le curseur souris sur l'icone du systray
il faudrai une bulle qui indique dans combiens de temps aura lieu le prochain changement de fond d'ecran !!
ça permet de verifier s'il tourne toujours
puis c'est utilse dans les tests
j'avais dans les parametres de ma carte graphique (nvidia geforce 7600 GT)
le parametre "activer la combinaison d'ecriture" d'activé !!
depuis que j'ai désactivé ce parametre (je sais meme pas a quoi il sert)
ton prg ne s'impose plus par dessus mon navigateur !!

c'est toujour bon a savoir

a ajouter , lorsqu'on met le curseur souris sur l'icone du systray
il faudrai une bulle qui indique dans combiens de temps aura lieu le prochain changement de fond d'ecran !!
ça permet de verifier s'il tourne toujours
puis c'est utilse dans les tests
