web-dev-qa-db-fra.com

Miniatures (Nautilus previews) pour les fichiers image "basic" (xpm, png, bmp, gif)

Nautilus ne générait pas de vignettes pour certains fichiers xpm que j’avais. J’ai donc essayé d’enquêter who était chargé de générer des vignettes pour les fichiers xpm (le cas échéant), ou d’autres images. Et je suis tombé sur un mur de désinformation, de spécifications obsolètes et de recherches frustrées.

Donc, est-ce que la vignette pour de telles images "de base" est définie? J'ai vérifié /usr/share/thumbnailers et il ne mentionne que les fichiers pdf, exe et vidéo. Aucune mention de png, jpg bmp, etc. Où sont définies les vignettes d'images? Wat sont les références officielles à ce sujet?

8
MestreLion

En fouillant plus loin (et en cherchant BEAUCOUP), je l'ai compris:

À propos des imageurs: Il semble que Nautilus utilise libgnome-desktop pour la gestion des vignettes, et ce dernier utilise libgdk-pixbuf pour gérer les types de fichiers n’ayant pas de gestionnaire externe dans /usr/share/thumbnailers. Ainsi, les types d'images "de base" sont finalement gérés par GnomeDesktopThumbnailFactory et GdkPixbuf (références affichées pour les versions livrées dans Ubuntu 12.04). Et les formats qu'il gère peuvent être inspectés à l'aide de l'outil gdk-pixbuf-query-loaders. Dans mon système, cela signifie:

The GdkPixdata format
['gdkp']
['image/x-gdkpixdata']

The Sun raster image format
['ras']
['image/x-cmu-raster', 'image/x-Sun-raster']

The PNG image format
['png']
['image/png']

The WBMP image format
['wbmp']
['image/vnd.wap.wbmp']

The JPEG image format
['jpeg', 'jpe', 'jpg']
['image/jpeg']

The ANI image format
['ani']
['application/x-navi-animation']

The TIFF image format
['tiff', 'tif']
['image/tiff']

The XBM image format
['xbm']
['image/x-xbitmap']

The PCX image format
['pcx']
['image/x-pcx']

The Targa image format
['tga', 'targa']
['image/x-tga']

The PNM/PBM/PGM/PPM image format family
['pnm', 'pbm', 'pgm', 'ppm']
['image/x-portable-anymap', 'image/x-portable-bitmap',
 'image/x-portable-graymap', 'image/x-portable-pixmap']

The JPEG 2000 image format
['jp2', 'jpc', 'jpx', 'j2k', 'jpf']
['image/jp2', 'image/jpeg2000', 'image/jpx']

The ICNS image format
['icns']
['image/x-icns']

The BMP image format
['bmp']
['image/bmp', 'image/x-bmp', 'image/x-MS-bmp']

Windows Metafile
['wmf', 'apm']
['image/x-wmf']

The QTIF image format
['qtif', 'qif']
['image/x-quicktime', 'image/qtif']

Scalable Vector Graphics
['svg', 'svgz', 'svg.gz']
['image/svg+xml', 'image/svg', 'image/svg-xml', 'image/vnd.Adobe.svg+xml',
 'text/xml-svg', 'image/svg+xml-compressed']

The ICO image format
['ico', 'cur']
['image/x-icon', 'image/x-ico', 'image/x-win-bitmap']

The XPM image format
['xpm']
['image/x-xpixmap']

The GIF image format
['gif']
['image/gif']

Donc ceux-ci sont les vignettes "internes". Et cela inclut les fichiers xpm. Donc, quelque chose n'allait pas avec mes fichiers particuliers à la place.

Et en effet, les fichiers n'étaient pas standard, ils avaient une note de copyright avant l'en-tête /* XPM *:

// This file is part of BOINC.
// http://boinc.berkeley.edu
//

/* XPM */
static const char *atiicon_xpm[] = {

Une fois les commentaires supprimés, les vignettes étaient générées simplement dans un fichier.

Il est curieux que, même avec l'en-tête "non valide", la Visionneuse d'images par défaut dans Gnome ("Eye of the Gnome" ou eog) ait pu afficher les fichiers! Donc, soit les fichiers ne sont pas réellement invalides, soit les félicitations de eog pour pouvoir les ouvrir! Quoi qu'il en soit, étant donné que est ​​possible d'ouvrir et que eog utilise gdk-pixbuf aussi, j'ai rempli un bogue dans libgnome-desktop demandant que les imageurs soient générés pour ces fichiers xpm non standard. Toute aide à la promotion du bug est appréciée!

En outre, quelques notes sur mes recherches:

ThumbnailerSpec est mentionné à plusieurs endroits en tant que spécification pour les "vignettes externes". Mais ça n'a rien à voir avec ça! Il est question d'utilisation de D-Bus pour la gestion des vignettes, et rien n'indique qu'une telle spécification est réellement implémentée dans Gnome.

En fait, j’ai été incapable de trouver toute spéc. Officielle sur le comportement mis en œuvre de "en enregistrant un fichier .thumbnailer avec le format [Thumbnailer Entry] et .desktop-esque au format /usr/share/thumbnailers ". Bug 636819 est souvent cité comme source, mais il décrit uniquement le comportement modifié dans la transition Gnome2-> Gnome3 et n'utilise plus gconf pour stocker les vignettes externes.

On dirait qu'il y a no spec du tout. Cette documentation obsolète est toujours la référence seulement ​​officielle, par exemple, sur ce que signifie %i %o %u %s.

Et le seul endroit "officiel" annonçant le passage de gconf à /usr/share/thumbnailers, autre que la recherche du code source commit qui l’a fait, est ceci apparemment ordinaire rapport de bug .

13
MestreLion