web-dev-qa-db-fra.com

Icônes d'interface Eclipse très petites sur un écran haute résolution sous Windows 8.1

Les différentes icônes et boutons de l'interface Eclipse (Kepler) sont très, très petits sur un ordinateur portable doté d'un écran de 3 200 x 1 800 pixels. La décoration d'erreur rouge qui semble indiquer des erreurs sur les fichiers est difficile à voir à moins que mon nez ne soit à quelques centimètres de l'écran.

J'ai joué avec le réglage de la résolution de l'écran et d'autres paramètres du système d'exploitation (Windows 8.1), ce qui aide, mais les autres applications semblent trop volumineuses et même les icônes Eclipse sont trop petites. L'élargissement des polices dans les préférences Eclipse (fenêtre> Préférences> Police de la boîte de dialogue) n'affecte pas la taille de l'icône.

Existe-t-il un moyen simple de forcer des icônes plus grandes? Y a-t-il des solutions de rechange (j'ai utilisé la loupe mais c'est une solution plutôt maladroite)? Devrais-je simplement acheter une loupe et la garder à côté de ma souris? Peut-être que quelqu'un devrait faire une souris avec une loupe intégrée? :)

Merci.

88
SeeJay719

J'ai cherché des solutions à ce problème le mois dernier, mais je n'ai pas encore trouvé de solution idéale. Il semble qu'il devrait y avoir un moyen de le contourner, mais je ne le trouve pas.

J'utilise un ordinateur portable avec un écran 2560x1600 avec un facteur d'agrandissement de 200% dans Windows 8.1 (ce qui lui donne l'aspect d'un écran 1280x800 mais plus clair).

Les applications qui prennent en charge ce mode "HiDPI" sont tout simplement magnifiques, mais celles qui ne le font pas (par exemple, Eclipse) affichent de minuscules icônes presque illisibles.

J'utilise également une version obsolète de Visual Studio. Cela n’a pas été mis à jour pour HiDPI (de toute évidence, MS veut utiliser une version plus récente de VS), mais il fonctionne toujours assez bien avec les écrans HiDPI puisqu’il redimensionne l’écran deux fois. Les tailles d’icônes et de lettres sont normales, mais elles regarder en basse résolution.

Après avoir vu le fonctionnement de VS, j'ai commencé à rechercher un moyen de lancer Eclipse dans le même mode, car il ne serait pas techniquement très difficile de faire évoluer les choses comme le fait VS. Je pensais qu'il y aurait une option que je pourrais définir pour lancer Eclipse dans ce mode. Je ne pouvais pas le trouver cependant.

Après tout, j'ai fini par baisser la résolution de l'écran à 1/4 (de 2560x1600 à 1280x800) sans grossissement (de 200% à 100%) et à ne pas profiter de l'écran haute résolution jusqu'à ce que Eclipse soit mis à jour pour le prendre en charge dû travailler, mais j’attends désespérément une réponse à cette question.

6
Jae

J'ai pensé qu'une solution consisterait à exécuter une opération de traitement par lots sur les fichiers JAR d'Eclipse, qui contiennent les icônes et doublent leur taille. Après un peu de bricolage, cela a fonctionné. Les résultats sont plutôt bons - il y a encore quelques icônes "têtues" qui sont minuscules mais la plupart sont belles.

Eclipse After Processing on QHD

J'ai mis le code dans un petit projet: https://github.com/davidglevy/Eclipse-icon-enlarger

Le projet fonctionne par:

  1. Itération sur chaque fichier du répertoire de base Eclipse (spécifié dans la ligne d'argument)
  2. Si un fichier est un répertoire, créez un nouveau répertoire sous celui présent dans le dossier de sortie (spécifié dans la ligne d'argument)
  3. Si un fichier est un fichier PNG ou GIF, doublez
  4. Si un fichier est d'un autre type, copie
  5. Si un fichier est un fichier JAR ou Zip, créez un fichier cible et traitez le contenu à l'aide d'un processus similaire: a. Les images sont doublées b. Les autres fichiers sont copiés tels quels dans le ZipOutputStream.

Le seul problème que j'ai trouvé avec cette solution est que cela ne fonctionne vraiment qu'une seule fois - si vous devez télécharger des plugins, faites-le à l'emplacement d'origine et réappliquez le processus de traitement par lots d'augmentation d'icône.

Sur le Dell XPS, cela prend environ 5 minutes.

Heureux pour les suggestions/améliorations, mais il ne s'agit en réalité que d'une solution ad hoc en attendant que l'équipe Eclipse répare le problème.

36
David Levy

J'ai un peu trop lutté avec ce problème. J'ai remarqué que beaucoup d'entre vous avaient posté des résolutions très compliquées, mais il existe un moyen beaucoup plus simple de le faire! C'est juste un programme et vous ne devriez pas avoir à modifier les scripts, ni installer des outils tiers. Le problème est lié à la mise à l'échelle haute résolution, comme mentionné ci-dessus, mais je pense que beaucoup d'entre vous sont absents, c'est que vous ne pouvez pas modifier directement les paramètres de compatibilité sur le lanceur lui-même. Le lanceur et Eclipse sont deux programmes différents! Vous devez accéder à Eclipse.exe et remplacer l'option de mise à l'échelle DPI élevé. Une fois défini, vous pouvez utiliser le lanceur normalement. Le programme de lancement lancera l'exécutable, lancera Eclipse.exe et, puisque vous définissez les paramètres de compatibilité sur le fichier .exe, il s'exécutera à l'aide de ces paramètres. J'ai passé environ 10 minutes à localiser le fichier exe, donc si son aide est située dans: C:\Utilisateurs\nom d'utilisateur\AppData\Local\Yatta\Launcher\installations\Eclipse-ide-for-Java-developers\Eclipse. EXE

Voici une capture d'écran de la manière dont je définis mes paramètres de compatibilité.

Eclipse.exe compatibility settings

Et oui, les icônes étaient très petites avant de régler ce paramètre. J'ai essayé de définir des paramètres de compatibilité sur le lanceur lui-même, mais cela n'a évidemment pas résolu le problème. Mais après avoir défini le paramètre de substitution haute résolution pour les icônes Eclipse.exe, la taille est maintenant normale. Faites-moi savoir si cela fonctionne pour les autres!

19
Devin C

Pour terminer, j'ai pensé ajouter que ce problème est résolu dans Eclipse 4.6 Neon https://www.Eclipse.org/downloads/index-developer.php (version actuelle du développeur). Les icônes ont l’air un peu tristes (basse résolution) mais au moins elles sont correctement mises à l’échelle sur mon écran 4k.

16
Michael Medin

J'utilise un Dell XPS 15. Plutôt que de chercher des résolutions, des grossissements et tout le reste, je viens de faire ce qui suit:

  • Clic droit sur l'icône du lanceur
  • Cliquez sur "propriétés"
  • Sélectionnez l'onglet "compatibilité"
  • Choisissez "Windows XP (Service Pack 3)" pour "Exécuter ce programme en mode de compatibilité pour:".

Tout semble bien fonctionner et l'affichage est beau (même si un peu flou/pixelly). La seule différence que je peux voir est que la barre de titre est dans le style Windows XP (oh non !!!).

Je suis curieux de savoir si cela fonctionne pour les autres et si quelqu'un rencontre des problèmes.

11
Jamie Carl

J'ai trouvé que le moyen le plus simple était de créer un fichier manifeste qui obligeait Windows à faire évoluer l'application. Il est flou et non idéal, mais meilleur qu'une interface utilisateur presque invisible! Il semble que cette technique est applicable à toute application aussi.

Créez un fichier Eclipse.exe.manifest dans le même dossier qu'Eclipse.exe et insérez-y le code XML suivant:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<Assembly xmlns="urn:schemas-Microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-Microsoft-com:asm.v3">

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0" processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.VC90.CRT"
      version="9.0.21022.8"
      processorArchitecture="AMD64"
      publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-Microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"
        uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>

</Assembly>
9
Brendan Annable

Si vous rencontriez le même problème, pour le résoudre, créez un raccourci du programme de lancement, cliquez avec le bouton droit de la souris sur> propriétés> compatibilité> cochez la case "Ignorer le comportement de redimensionnement en DPI élevé" et sélectionnez Système amélioré dans le menu déroulant, comme indiqué sur la photo ci-dessous. Relancez Eclipse après les modifications.

enter image description here

7
user2052544

Le meilleur moyen est d’éditer le manifeste exe avec quelque chose comme un accordeur de ressources et d’ajouter

    <application xmlns="urn:schemas-Microsoft-com:asm.v3"><windowsSettings><ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.Microsoft.com/SMI/2005/WindowsSettings" xmlns="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware></windowsSettings></application>        

après la dépendance pour définir le fichier exe en tant que dpi non au courant. De cette façon, le programme sera un peu pixelisé mais il sera dans une taille confortable.

7
Yucelen Gul

La meilleure solution sans effort est d’utiliser Eclipse Neon. Tous les bogues sont corrigés dans cette version. https://bugs.Eclipse.org/bugs/show_bug.cgi?id=42138

5
Shirish Coolkarni

Le mode de compatibilité pour Windows Xp, il est uniquement disponible pour la version 32 bits d’Eclipse. Après avoir exécuté ce mode de compatibilité, les icônes et le texte auront la bonne taille, mais ils seront flous car ils sont redimensionnés de la résolution native à la résolution de l’écran. la qualité est perdue.

3
Dan Romulus

Jetez un oeil sur Neon (4.6) M6 - Nouveau et remarquable , la publication des jalons contient une mise à l’échelle automatique des images (par exemple, une barre d’outils).

SWT fournit une mise à l'échelle automatique basée sur la résolution

SWT redimensionne maintenant automatiquement les images sur les moniteurs haute résolution sous Windows et Linux, comme le support Retina de Mac sous OS X. En l’absence d’images haute résolution, SWT redimensionne automatiquement les images disponibles afin de garantir que les applications SWT telles que Les éclipses sont proportionnées à la résolution du moniteur.

enter image description here

Cette fonctionnalité peut être désactivée sous Windows et GTK en définissant cet argument VM sur false dans Eclipse.ini ou sur la ligne de commande après -vmargs:

-Dswt.enable.autoScale = false

La mise à l'échelle automatique ne peut pas être désactivée sur le Mac car elle est fournie par le système d'exploitation.

Mises en garde: nous sommes conscients que certaines images redimensionnées semblent mauvaises lorsque leur facteur d'échelle est inférieur à 200%. Cela sera amélioré dans M7. De plus, nous travaillons à la prise en charge des images à haute résolution dans Platform UI, afin que les fournisseurs de plug-ins puissent ajouter des icônes de haute résolution sans modifier le code.



Ou peut-être que cela aide, a été ajouté dans Eclipse Mars API pour haute résolution

De nouvelles API ont été ajoutées pour prendre en charge le rendu des images haute résolution sur des moniteurs haute résolution. Deux constructeurs ont été ajoutés à la classe Image. Ils acceptent les rappels de fournisseurs d'images qui permettent aux clients de fournir des versions d'images dépendantes de la résolution:

public interface ImageDataProvider {
  public ImageData getImageData (int zoom);
}
public interface ImageFileNameProvider {
  public String getImagePath (int zoom);
}

Selon la configuration du moniteur de l'utilisateur, SWT demandera des images avec le niveau de zoom correspondant. Voici un exemple qui affiche 3 images originales, suivies de variantes dont la résolution change en fonction de la résolution de votre moniteur: Snippet367.Java .

Notez qu'il ne s'agit que de la première étape de la prise en charge des images haute résolution dans les applications SWT et Eclipse. Des travaux sont en cours pour adopter les nouvelles API de la plate-forme. De plus, SWT nécessite davantage de travail pour permettre à l'utilisateur de dessiner correctement dans des images haute résolution via GC.

API pour la prise en charge de moniteurs haute résolution
http://help.Eclipse.org/mars/index.jsp?topic=%2Forg.Eclipse.platform.doc.isv%2FwhatsNew%2Fplatform_isv_whatsnew.html

3
flavio.donze

J'ai corrigé la solution de @ Sigh en créant un shellScript (Linux) (.sh) pour faire quelque chose de similaire. C'est très brut, brutal, et nécessite une adoption pour votre système spécifique. tilisez-le à vos risques et périls. Cela pourrait casser toute votre installation. Faites des sauvegardes des dossiers avant d'exécuter ce script. Le script peut être amélioré.

#!/bin/bash

for J in *.jar
do
        echo "Copying $J..."
        mkdir -p "/tmp/$J"
        cp "$J" "/tmp/$J/"
        cd "/tmp/$J"

        echo "Extracting $J..."
        jar xf "$J"
        rm "$J"

        echo "Processing images..."
        find . -name "*.gif" -exec convert {} -resize 200% {} \;

        echo "Compressing $J..."
        if [ `ls .[^.]* 2>/dev/null | wc -l` = 0 ]
        then
                jar cf "$J" *
        else
                jar cf "$J" * .[!.]*
        fi
        cd -
        mv $J{,-bak}
        mv "/tmp/$J/$J" .
        rm -rf "/tmp/$J"

        echo "Done."
        echo ""
done

Exécutez ceci dans /opt/Eclipse/plugins et ~/.Eclipse/org.Eclipse.platform_4.x.x/plugins (ou quels que soient les chemins de votre installation). Mêmes problèmes qu'avec la solution de @ Sigh: il s'agit d'un "correctif" brutal qui se rompt après chaque mise à jour ou nouvelle installation.

Le script peut être perfectionné:

  • Ignorer les fichiers .jar sans/icons/folder
  • Redimensionnez uniquement les images au format 16x16 pour pouvoir les réexécuter après chaque mise à jour/installation.

Requiert imagemagick.


Mises en garde

  • Cela ne fonctionne pas sur toutes les icônes.
    • Est-ce que quelqu'un sait où sont les autres actifs ou pourquoi ils ne sont pas redimensionnés? Peut-être qu'ils ne sont pas .gif?
  • Les icônes de l'explorateur de projet sont foirées.

Les correctifs sont les bienvenus!

3
Redsandro

-SurfacePro3-

  • Téléchargez et décompressez Eclipse "Version 32 bits".
  • Exécuter en mode "Windows XP" ".
3
user4137675

La solution suivante a fonctionné pour moi

Vous devez d'abord ajouter cette clé de registre

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) to 1

Ensuite, un fichier manifeste portant le même nom que l'exécutable doit être présent dans le même dossier que l'exécutable. Le fichier s'appelle Eclipse.exe.manifest et se compose de:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Assembly xmlns="urn:schemas-Microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-Microsoft-com:asm.v3">
    <description>Eclipse</description>
    <trustInfo xmlns="urn:schemas-Microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel xmlns:ms_asmv3="urn:schemas-Microsoft-com:asm.v3"
                               level="asInvoker"
                               ms_asmv3:uiAccess="false">
                </requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>
    <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">
            <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
        </asmv3:windowsSettings>
    </asmv3:application>
</Assembly>

vous pouvez trouver plus de détails ici

2
KItis

Ce qui a fonctionné pour moi à la fin a été en ajoutant le fichier manifeste au javaw.exe comme l’a dit Heikki Juntunen à la page https: // bugs .Eclipse.org/bugs/show_bug.cgi? Id = 421383 # c66

Les instructions relatives à la modification du registre et à la création du fichier manifeste ont été écrites par Matthew Cochrane sur https://bugs.Eclipse.org/bugs/show_bug.cgi?id=421383#c6 et @KItis. écrit les instructions ici

Je mets ici une copie de ce post:


Vous devez d'abord ajouter cette clé de registre

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) to 1

Ensuite, un fichier manifeste portant le même nom que l'exécutable doit être présent dans le même dossier que l'exécutable. Le fichier s'appelle Eclipse.exe.manifest et se compose de:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Assembly xmlns="urn:schemas-Microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-Microsoft-com:asm.v3">
    <description>Eclipse</description>
    <trustInfo xmlns="urn:schemas-Microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel xmlns:ms_asmv3="urn:schemas-Microsoft-com:asm.v3"
                               level="asInvoker"
                               ms_asmv3:uiAccess="false">
                </requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>
    <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">
            <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.Microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
        </asmv3:windowsSettings>
    </asmv3:application>
</Assembly>
1
elysch

Merci Sigh David Levy. Je ne pouvais pas développer sur Eclipse sans votre sol'n. J'ai dû ajouter une capture coupla (exceptions) à votre code pour que cela fonctionne:

            while (srcEntries.hasMoreElements()) {
                    ZipEntry entry = (ZipEntry) srcEntries.nextElement();
                    logger.info("Processing Zip entry ["+ entry.getName() + "]");

                    ZipEntry newEntry = new ZipEntry(entry.getName());


                    try { outStream.putNextEntry(newEntry); } 
                    ***catch (Exception e) { 
                        logger.error("error: ", e);
                        outStream.closeEntry();
                        continue;*
                    }**
1
JDOaktown

Le changement ci-dessous fonctionne de manière transparente.

Citant de CrazyPenguin 's réponse

"Pour ceux qui, comme moi, ont trouvé que même sur la nouvelle Eclipse, elle n’était pas mise à l’échelle, voir ici: swt-autoscale-tweaks En fait, j’ai ajouté - Dswt .autoScale = quarter dans mon fichier Eclipse.ini. "

1
Sujan Reddy A

Il existe un article de Nice dans JaxEnter pour un travail autour de HiDPI pour Eclipse

1
Anand

Voici ma solution Inspirée par la solution de @ Sigh (celle-ci n'utilise pas maven):

https://github.com/gitAmrit/EclipseIconEnlarger/tree/master#eclipseiconenlarger

Cela fonctionne en recherchant toutes les images inférieures ou égales à 16x16px et en les redimensionnant selon le facteur souhaité par l'utilisateur.

exécution de l'utilitaire: Java images.EclipseIconEnlarger eclipseBasePath magnificaitonfactor

exemple: Java images.EclipseIconEnlarger C:\Utilisateurs\Amrit\Codes\Eclipse 2

eclipseBasePath = chemin où Eclipse.exe est situé, par exemple. C:\Utilisateurs\Amrit\Codes\Eclipse magnificationfactor = facteur permettant d'agrandir l'image, par exemple. 2 = double

0
akhadka

J'ai eu ce problème lorsque j'ai changé la langue par défaut de Windows 10 de Eng en italien, avec Eclipse installé lorsque la langue par défaut était Eng. Le rétablissement de la langue Windows en anglais et le redémarrage ont résolu le problème. Je ne sais pas ce qui s’est passé, Windows a renommé certains dossiers tels que C:\Les utilisateurs l’a traduit dans votre langue par défaut (c.-à-d. C:\Utenti), ce qui pose peut-être problème.

0
carlo.polisini

Si vous ne souhaitez pas installer une version plus récente d'Eclipse

Comme mentionné ici , dans le fichier Eclipse.init , ajoutez -Dswt.autoScale=exact après le -vmargs et vous. sont bons pour aller.

Ici exact redimensionne les icônes au zoom natif. Mais vous devrez vous ajuster avec les icônes floues et déchiquetées.

0
Sainand Shinde

Voici une autre solution en ligne de commande, mais cela fonctionne pour Windows.

Winrar doit être installé (modifiez la ligne winrar définie pour qu'elle pointe vers l'installation de Winrar).

Il faut également installer imagemagick et ajouter son chemin dans votre ligne de commande.

Un dernier commentaire est que je recommande d'exécuter ceci avant d'ouvrir Eclipse pour la première fois (c'est-à-dire, une nouvelle installation). Il existe des icônes qui sont automatiquement décompressées des fichiers JAR et enregistrées dans Eclipse/configuration/org.eclips.osgi/... (potentiellement parmi d'autres dossiers) et la modification du fichier .jar empêche le redimensionnement de l'icône. Vous pourrez peut-être supprimer ce dossier et il se peut que l'auto-extraction soit à nouveau effectuée, mais je ne peux pas confirmer.

Pour l'exécuter, créez simplement un fichier doubler.bat dans votre répertoire Eclipse/plugins. Toute icône d'une taille inférieure à 32x32 devrait être redimensionnée à cette taille proportionnée.

Voici le code:

@echo off
set winrar="C:\Program Files\WinRAR\winrar.exe"
set startpath=%~dp0

::All *.jar in this folder
FOR %%G in (*.jar) do (call :EachJar "%%G")

GOTO :eof

:EachJar
  ::echo %1
  set nameWOQuotes=%~1
  mkdir "tmp\%nameWOQuotes%"
  ::copy "%nameWOQuotes%" "tmp\%nameWOQuotes%.bak" >NUL
  %winrar% x -inul "%nameWOQuotes%" *.jpg *.gif *.png *.tif *.tiff "tmp\%nameWOQuotes%\"
  ::pause
  cd "tmp\%nameWOQuotes%"
  FOR /R .\ %%H in (*.jpg *.gif *.png *.tif *.tiff) do ( 
    ::echo %nameWOQuotes%-%%~nxH >> "%startpath%\output.txt"
    identify "%%H" >> "%startpath%\output.txt"
   convert "%%H" -resize 32x32^< "%%H" )
  %winrar% a -r -u "%startpath%\%nameWOQuotes%" "*"
  cd "%startpath%"
  rmdir /s /q "tmp\%nameWOQuotes%"
Goto :eof

Il crée un fichier output.txt et insère toutes les métadonnées des images ORIGINAL avant leur conversion, que la taille ait été modifiée ou non.

0
NeuralNoise