Page 2 sur 3

Publié : ven. 16/nov./2007 8:59
par Gillou
Salut,

Super sympa, programme déjà adopté,

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?

Publié : ven. 16/nov./2007 9:51
par lionel_om
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?
L'image est agrandie comme quand tu sélectionne "étirée" dans Affichage / arrière plan.

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 :D

Publié : ven. 16/nov./2007 19:10
par Gillou
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

Publié : ven. 16/nov./2007 20:50
par lionel_om
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?
Si je vais inclure ça, tester puis après updater tout cela.
Merci pour cette remarques et ce code

Lio :wink:

Publié : mar. 20/nov./2007 23:39
par lionel_om
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 :wink:

Publié : mar. 27/nov./2007 8:45
par Gillou
Merci pour la modif, impec!

Publié : mer. 04/mars/2009 23:39
par lionel_om
Nouvelle version. Juste quelques modifications:
  • 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 !
Re-voici le lien: WallChanger

/Lio

Publié : ven. 14/août/2009 17:18
par Backup
adopté !! :D

Grand Merci pour ce programme !

j'etais passé a coté !! :)

bon bouleau , marche bien chez moi :)

Merci encore :)

Publié : ven. 14/août/2009 17:32
par Backup
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 !! :?

:)

Publié : ven. 14/août/2009 18:28
par lionel_om
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å

Publié : ven. 14/août/2009 19:24
par Backup
ce que j'apelle plein ecran avec mozilla c'est lorsque tu agrandi au maximum la fenetre :)
avec le petit carré a gauche de la croix de fermeture :)

a ce moment lorsque le fond d'ecran change , chez moi , l'image passe un instant en avant plan au moment du changement :)

Publié : ven. 14/août/2009 20:14
par Backup
bon attends !!

il semblerai que ce probleme n'a lieu que sur l'un de mes PC !! :)

je recherche d'ou ça viens !! :D

Publié : ven. 14/août/2009 22:34
par lionel_om
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å

Publié : sam. 15/août/2009 11:41
par Backup
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 !! :lol:

c'est pratique !!


si je tenais l'electro du dimanche qui m'a pondu un truc pareil !! :twisted:

c'est le soucis des vielles maison ça ! :)

Publié : sam. 15/août/2009 20:44
par Backup
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 ;)