web-dev-qa-db-fra.com

Réglage de l'arrière-plan - options de recadrage

Lorsque vous définissez un fond d’écran, vous pouvez choisir entre mosaïque, zoom, centre, échelle, remplissage ou span options. Que signifient-ils?

Comment l'option scale est différente de zoom et span? Je ne vois pas la différence sur aucun de mes fonds d'écran.

4
seler

Pour comprendre les subtilités des différentes options disponibles, il vaut la peine de chercher un peu dans le code source pour voir ce qui se passe avec chaque option. Je vais faire de mon mieux pour dire que c'est simplement que possible, mais avec l'avertissement, vous devez apprendre un peu de mathématiques!

Permet de saisir le code source:

 apt-get source gnome-desktop3
 cd gnome-desktop*
 cd libgnome-desktop

Ouvrez maintenant le module source suivant avec votre éditeur de texte préféré:

 gedit gnome-bg.c

Il y a deux fonctions clés à examiner:

get_scaled_pixbuf

commutateur 
 
 (placement) {
 affaire G_DESKTOP_BACKGROUND_STYLE_SPANNED: 
 new = pixbuf_scale_to_fit (pixbuf, largeur, hauteur); 
 break; 
; ] case G_DESKTOP_BACKGROUND_STYLE_ZOOM: 
 new = pixbuf_scale_to_min (pixbuf, largeur, hauteur); 
; 
. , largeur, hauteur, 
 GDK_INTERP_BILINEAR); 
 pause; 
. .____.] pause; 
 
 cas G_DESKTOP_BACKGROUND_STYLE_CENTERED: 
 cas G_DESKTOP_BACKGROUND_STYLE_WALLPAPER: 
 par défaut: 
 nouveau = Pix_uf_clip 
        Pause;
    }

et la fonction:

draw_image_area

commutateur 
 
 (bg-> placement) {
 cas G_DESKTOP_BACKGROUND_STYLE_WALLPAPER: 
 pixbuf_tile (scaled, dest); 
 break; 
 case G_DESKTOP_BACKGROUND_STYLE_OZOOM: 
 case G_DESKTOP_BACKGROUND_STYLE_CENTERED: 
 cas > x, y + area-> y, 1.0); 
 pause; 
 cas G_DESKTOP_BACKGROUND_STYLE_SPANNED: 
 pixbuf_blend (scale, dest, 0, 0, w, h, x, y , 1.0); 
 Pause; 
 Défaut: 
 G_assert_not_reached (); 
 Pause; 
 
 
  • Regardons d'abord l'option SPAN

Ceci est décrit par l'option de cas G_DESKTOP_BACKGROUND_STYLE_SPANNED

Le papier peint (pixbuf) est d'abord mis à l'échelle de la zone à remplir (pixbuf_scale_to_fit), c.-à-d. Prenez le papier peint d'origine et développez sa largeur et sa hauteur pour l'adapter à la zone.

Il utilise l'algorithme suivant pour développer:

 facteur = MIN (largeur_max/src_width, hauteur_max/src_height); 
 new_width = floor (facteur src * largeur + 0,5); 
 new_height = plancher (facteur src_height * + 0,5); 
 

src _ est la largeur ou la hauteur du papier peint, alors que max _ est la surface. dimension largeur ou hauteur

Un algorithme assez compliqué, comme vous pouvez le constater, mais il essaie en gros de déterminer quelle est la dimension minimale à développer avant de redimensionner les deux dimensions de manière linéaire par le même facteur qu’il a calculé.

Cette zone est la zone combinée de votre moniteur ou de vos moniteurs.

Le papier peint résultant (pixbuf) est ensuite mélangé à la couleur d'arrière-plan du bureau pour l'ensemble de la zone.

  • Regardons l'option SCALE

Ceci est décrit par l'option de cas G_DESKTOP_BACKGROUND_STYLE_SCALED

Comme vous pouvez le constater dans le code source, il ressemble beaucoup à SPAN. Il utilise le même algorithme pour redimensionner l'image en tant que SPAN.

Le fond d’écran résultant (pixbuf) est ensuite mélangé à la couleur d’arrière-plan du bureau pour la zone du port de visualisation, c’est-à-dire non pas la zone combinée de tous les moniteurs, mais la zone de chaque moniteur individuellement.

  • Regardons l'option Zoom

Ceci est décrit par l'option de cas G_DESKTOP_BACKGROUND_ZOOM

Le papier peint (pixbuf) est d'abord mis à l'échelle de la zone à remplir (pixbuf_scale_to_min), c.-à-d. Prenez le papier peint d'origine et développez sa largeur et sa hauteur pour l'adapter à la zone.

Il utilise l'algorithme suivant pour développer:

 facteur = MAX (min_width/src_width, min_height/src_height); 
 
 new_width = floor (src_width * facteur + 0,5); 
 new_height = floor (src_height * facteur + 0,5); 

src _ est la largeur ou la hauteur du papier peint, alors que max _ est la surface. dimension largeur ou hauteur *

Remarquez la différence subtile par rapport aux deux options précédentes: il calcule la dimension maximale à développer avant de redimensionner les deux dimensions de manière linéaire par le même facteur que celui calculé.

Le fond d’écran résultant (pixbuf) est ensuite mélangé à la couleur d’arrière-plan du bureau pour la zone du port de visualisation, c’est-à-dire non pas la zone combinée de tous les moniteurs, mais la zone de chaque moniteur individuellement.

  • Regardons l'option STRETCH

Ceci est décrit par l'option de cas G_DESKTOP_BACKGROUND_STRETCHED

Le papier peint (pixbuf) s’agrandit en largeur et en hauteur, vous pouvez donc obtenir une distorsion si votre papier peint n’a pas exactement les dimensions du papier peint.

Le fond d’écran résultant (pixbuf) est ensuite mélangé à la couleur d’arrière-plan du bureau pour la zone du port de visualisation, c’est-à-dire non pas la zone combinée de tous les moniteurs, mais la zone de chaque moniteur individuellement.

  • Regardons l'option CENTER

Ceci est décrit par l'option de cas G_DESKTOP_BACKGROUND_CENTRED

Le papier peint (pixbuf) est en fait découpé à la taille s'il est trop grand pour s'adapter à la zone, c'est-à-dire que la largeur est réduite à la largeur de la zone et que la hauteur est réduite à la hauteur de la zone.

Le fond d’écran résultant (pixbuf) est ensuite mélangé à la couleur d’arrière-plan du bureau pour la zone du port de visualisation, c’est-à-dire non pas la zone combinée de tous les moniteurs, mais la zone de chaque moniteur individuellement. L'image résultante est ensuite dessinée au centre de la zone globale du moniteur.

  • Regardons l'option TILE

Ceci est décrit par l'option de cas G_DESKTOP_BACKGROUND_WALLPAPER

Le papier peint (pixbuf) est également coupé en tant qu'option Centre .

Le fond d’écran résultant (pixbuf) est ensuite mélangé à la couleur d’arrière-plan du bureau pour la zone du port de visualisation, c’est-à-dire non pas la zone combinée de tous les moniteurs, mais la zone de chaque moniteur individuellement. L'image résultante est copiée de manière répétée en commençant dans un coin, remplissant la zone globale avec chaque image, c'est-à-dire en mosaïque dans le sens de la largeur et de la hauteur.

6
fossfreedom

Cela va être difficile à voir mais ...

  • Mosaïque - Mosaïque d'une image, comme des mosaïques au sol, essayez de très petites images, telles que 100x100 voir des exemples
  • Zoom - Effectue un zoom sur une image de sorte que la plus grande dimension soit désormais la plus grande dimension du bureau. Par exemple, une image 200x100 sur un bureau 800x600 serait agrandie à 800x400, laissant 200 pixels d'espace vide.
  • Remplissez - essentiellement "échelles" à la largeur de votre moniteur. Ignorer la hauteur. si vous avez une résolution de 1000x1000 et une image de 600x500, l’image sera redimensionnée à 1200x1000 et centrée, ce qui coupera un peu le haut et le bas.
  • Span - ressemble à Scale mais sur plusieurs moniteurs. Donc, si vous avez 2 800x600 et une image de 1600x600, vous pouvez le "répartir" sur les deux moniteurs
  • Centre - pour les images sous-dimensionnées (même si une plus grande fonctionne) qui place l'image au centre d'un seul moniteur.
  • Échelle - "redimensionne" l'image. Ce qui en fait exactement la même taille que votre bureau. Ainsi, un ordinateur de bureau 800 x 600 "redimensionnera" une image 900 x 200 à exactement 800 x 600, et la distorsion sera maudite.

Désolé, je ne peux pas fournir d’échantillon autre que mosaïque, mais les images dépendent fortement de votre moniteur. Vous devriez être en mesure de voir facilement les options en vigueur si vous utilisez une image avec un ratio d'aspect trop petit et avec un mauvais aspect à tester.

5
coteyr

De mes observations sur plusieurs images:

  • Centre: place l'image au centre du bureau tout en conservant sa taille d'origine.
  • Mosaïque: mosaïque l'image, comme une mosaïque au sol, en conservant la taille originale de l'image.
  • Remplir: étire (ou réduit) l'image pour qu'elle corresponde à l'écran, sans se soucier de la conservation des proportions.
  • Zoom: étire (ou réduit) l'image en conservant les proportions afin que l'arrière-plan soit complètement rempli. Lorsque l’image et l’écran ont des proportions différentes, les bandes supplémentaires qui ne peuvent pas être coupées seront coupées (haut et bas ou gauche et droite en fonction de l’image).
  • Échelle: étire (ou réduit) l'image en conservant les proportions, mais en veillant à ce que l'image tienne parfaitement dans la zone de l'écran. Lorsque l’image et l’écran ont des proportions différentes, les bandes vides sur les côtés seront alors laissées vide (encore une fois, en haut et en bas ou à gauche et à droite selon l’image).
  • Span: aucune idée. On dirait que Scale. Je suppose que Coteyr a raison, et qu’il fait la même chose que Scale mais pour plusieurs écrans.
3
Mamouth