web-dev-qa-db-fra.com

Windows Photo Viewer ne peut pas fonctionner car pas assez de mémoire?

Vient de recevoir une erreur étrange. J'ai été envoyé une image sur e-mail, a ouvert l'e-mail dans Outlook (version Office 365) et double cliquée sur l'image pour ouvrir. J'ai eu cette erreur:

"Windows Photo Viewer ne peut pas afficher cette image car il n'ya peut-être pas suffisamment de mémoire disponible sur votre ordinateur. Fermez certains programmes que vous n'utilisez pas ou libérez un espace disque dur (s'il est presque plein), puis réessayez."

enter image description here

quelques points:

  • J'ai toujours utilisé Photo Viewer sur cet ordinateur portable et n'a pas eu de problème auparavant. J'ai redémarré et essayé d'ouvrir à nouveau l'image mais pas de chance.
  • L'image n'est pas corrompue. J'ai sauvé sur le bureau, essayé d'ouvrir et un même problème. J'ai ouvert avec Photoshop, qui a fonctionné bien. Je l'ai sauvé du PSD en tant que nouveau JPG. Le nouveau JPG affiche également le même message.
  • Toute image J'ai essayé d'ouvrir des résultats dans cette erreur.
  • L'image est de 200 Ko de taille, RES de 1428x2000.
  • Mon ordinateur portable a 32 Go de RAM et utilise actuellement 8 Go de cela selon le responsable de la tâche.

Ce que j'ai essayé:

Cet article de Microsoft: https://social.technet.microsoft.com/forums/windows/en-us/7b6ae08b-4b5c-443b-9d43-443b-9d43-443b-9d43-443b-9d43-443b-9d43-443b-9d43-E87CA5E7AEB1/WNDOWS-Photo-Viewer-Operation?forum=w7itproappCompat

  • Cela n'a pas fonctionné car quand je reçois la gestion des couleurs, je n'ai aucun profil mis en place pour que je ne puisse pas supprimer.

J'ai vu ce post: Windows Photo Viewer a besoin de plus de RAM?

  • J'ai 2 cartes vidéo intégrées: Standard Intel (R) HD Graphics 530 et un Nvidia Quadro M1000m. J'ai essayé la résolution dans le poteau (le déplaçant à différents moniteurs alimentés par une carte vidéo différente) et rien n'a changé.

Nettoyage de disque. Avait beaucoup d'espace disponible quand même mais rien n'a changé.

Spécifications: Je suis exécuté Windows 10 v1909 Build 18363.535 sur un ordinateur portable Lenovo P50 avec mémoire de 32 Go, stockage de 500 Go (actuellement 192 Go gratuit), Intel Core I7-6700HQ.

Appréciez si quelqu'un peut aider à résoudre ce problème. La nouvelle application Microsoft Photos est absolument terrible et je l'éviterai à tout prix.

7
5Diraptor

Je creuse ce problème parce que j'avais un problème similaire avec des photos exportées de Android Envoyer gratuitement Application.

Ce problème dans mon cas est lié à Inclus Profile-ICC Dans ce fichier JPG.

  Profiles:
  Profile-icc: 536 bytes

Il peut être vérifié avec ImageMagick Identifier -verbose Commande.

Ceci n'est peut-être pas une solution pour l'ouvrir à partir d'Outlook, mais vous pouvez corriger les fichiers à la source.

J'ai découvert que lorsque je courais Convertir badfile.jpg -strip goodfile.jpg Commande sur ce fichier Il s'ouvre sur Windows 7 Photo Viewer sans problème.

-strip  - strip image of all profiles and comments

Vous pouvez obtenir tout cet outil ici: https://imagemagick.org/script/download.php

Donc, si vous voulez faire que toutes les images accessibles à nouveau, il suffit d'exécuter un lot sur eux:

Mogriny.exe -Format JPG -VERBOSEBOSE -PATH C:\OUTPUT_DIR -Strip * .jpg

Peut-être également utilisé un chemin relatif similaire Chemin Output_Dir Si vous le souhaitez dans le sous-dossier.

Si vous devez ouvrir ces fichiers directement à partir d'Outlook, je recommanderais par exemple IRFANView, qui n'a pas de problème avec l'ouverture de ces fichiers. Il suffit de le définir comme programme de fichiers graphiques par défaut.

Certaines personnes ont informé quelque chose de lié à la variation de profils par défaut dans votre configuration de l'écran, mais je l'ai défini sur mon type de moniteur, donc je ne veux pas gâcher avec ces paramètres.

Si vous voulez cela entièrement automatique, vous avez besoin de 3 choses:

  1. DefaultProgramSeditor ( https://DefaultProgramseditor.com/ )
  2. ImageMagick ( https://imagemagick.org/download/binaires/imagemagick-7.0.10-1-portable-q16-x64.zip )
  3. Script de lots qui traitera le fichier ouvert.

1) Premier décompressez ImageMagick à C:\Apps\ImageMagick-7.0.10-1-Portable-Q16-X64

2) Créer un script de lot C:\apps\gfxopen.bat:

@echo off
C:\Apps\ImageMagick-7.0.10-1-portable-Q16-x64\convert.exe %1 -strip c:\temp\temp12345file.jpg

rundll32 "C:\Program Files\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen c:\temp\temp12345file.jpg

del c:\temp\temp12345file.jpg

3) Decompress DefaultProgramseditor et exécutez-le, puis choisissez Paramètres de type de fichier> Menu contextuel> Trouver une extension JPG, puis> Ajouter ...

Nom de la commande: Open Fixed Image

Chemin de programme: "C:\apps\gfxopen.bat" "%1"

Ensuite, choisissez "Ouvrir l'image fixe" et appuyez sur "Définir la commande sélectionnée comme défaut"

Alors Enregistrer le menu contextuel

C'est tout :)

10
mike

Pour tout Android Developers qui pourraient rencontrer ceci: Semble que Windows Photo Viewer n'aime pas les métadonnées de profil ICC que Bitmap.compress écrit (peut-être que ça n'aime pas aucun profils ICC en fait? Je n'ai pas vérifié).

Voici un moyen de simplement supprimer ce segment de métadonnées à partir du fichier JPEG, ce qui permet à une JPEG compatible avec Windows Photo Viewer:

    // Some image viewer applications (such as Windows Photo Viewer) doesn't seem to like the ICC profile meta data that Android's Bitmap.compress writes.
    // This decorator removes the section.
    private static class RemoveFFE2OutputStreamDecorator extends OutputStream {
        OutputStream underlyingStream;
        boolean marker = false;
        boolean skipSegment = false;

        public RemoveFFE2OutputStreamDecorator(OutputStream underlyingStream) {
            this.underlyingStream = underlyingStream;
        }

        @Override
        public void write(int b) throws IOException {
            // Based on https://en.wikipedia.org/wiki/JPEG#Syntax_and_structure
            if (this.marker) {
                this.marker = false;
                if ((b & 0xFF) == 0xE2) { // The 0xFF,0xE2 segment that Android writes seems to cause trouble with Windows Photo Viewer.
                    this.skipSegment = true;
                } else {
                    this.skipSegment = false;
                    this.underlyingStream.write(0xFF);
                    this.underlyingStream.write(b);
                }
            } else if ((b & 0xFF) == 0xFF) {
                this.marker = true;
            } else if (!this.skipSegment) {
                this.underlyingStream.write(b);
            }
        }

        @Override
        public void flush() throws IOException {
            this.underlyingStream.flush();
        }

        @Override
        public void close() throws IOException {
            this.underlyingStream.close();
        }
    }
1
Allanrbo

J'ai corrigé ce problème par un profil ICC non traité: SRGB lors de l'enregistrement de JPG avec Photoshop.

Voir les propriétés de l'image:

Photoshop Save As & Image Properties

0
Adam