Acabo de recibir un error extraño. Me enviaron una imagen por correo electrónico, abrí el correo electrónico en Outlook (versión Office 365) e hice doble clic en la imagen para abrirla. Recibí este error:
"Windows Photo Viewer no puede mostrar esta imagen porque es posible que no haya suficiente memoria disponible en su computadora. Cierre algunos programas que no esté utilizando o libere espacio en el disco duro (si está casi lleno) y luego vuelva a intentarlo".
Algunos puntos:
- Siempre he usado el visor de fotos en esta computadora portátil y no tuve ningún problema antes. Reinicié e intenté abrir la imagen nuevamente pero no tuve suerte.
- La imagen no está corrupta. Guardé en el escritorio, intenté abrir, el mismo problema. Abrí con Photoshop, funcionó bien. Lo guardé desde PSD como un nuevo JPG. El nuevo JPG también muestra el mismo mensaje.
- Cualquier imagen que he intentado abrir genera este error.
- La imagen tiene un tamaño de 200 KB y una resolución de 1428x2000.
- Mi computadora portátil tiene 32 GB de RAM y actualmente usa 8 GB según el administrador de tareas.
Lo que he probado:
Esta publicación de Microsoft:https://social.technet.microsoft.com/Forums/windows/en-US/7b6ae08b-4b5c-443b-9d43-e87ca5e7aeb1/wndows-photo-viewer-operation?forum=w7itproappcompat
- Esto no funcionó porque cuando llego a la administración del color, no tengo perfiles configurados, por lo que no puedo eliminarlos.
He visto esta publicación:¿Windows Photo Viewer necesita más RAM?
- Tengo 2 tarjetas de video integradas: Intel(R) HD Graphics 530 estándar y una Nvidia Quadro M1000M. Probé la resolución en la publicación (moviéndola a diferentes monitores con diferentes tarjetas de video) y nada cambió.
Limpieza de disco. Tenía mucho espacio libre de todos modos, pero nada cambió.
Especificaciones: Estoy ejecutando Windows 10 v1909 Build 18363.535 en una computadora portátil Lenovo P50 con 32 GB de memoria, 500 GB de almacenamiento (actualmente 192 GB libres), Intel Core i7-6700HQ.
Apreciaría si alguien pudiera ayudar a solucionar este problema. La nueva aplicación Microsoft Photos es absolutamente terrible y la evitaré a toda costa.
Respuesta1
Excavo este problema porque tuve un problema similar con las fotos exportadas desde AndroidEnviar Rebajado Gratissolicitud.
Este problema en mi caso está relacionado con incluidoPerfil-iccen ese archivo JPG.
Profiles:
Profile-icc: 536 bytes
Se puede verificar conIdentificar ImageMagick - detalladodominio.
Quizás esta no sea la solución para abrirlo directamente desde Outlook, pero puede reparar esos archivos en la fuente.
He descubierto que cuando corroconvertir BADFILE.jpg -strip GOODFILE.jpgcomando en ese archivo se abre en Windows 7 Photo Viewer sin ningún problema.
-strip - strip image of all profiles and comments
Puedes conseguir toda esta herramienta aquí:https://imagemagick.org/script/download.php
Entonces, si desea que todas las imágenes vuelvan a ser accesibles, simplemente ejecute el lote en ellas:
mogrify.exe -formato jpg -detallado -ruta C:\OUTPUT_DIR -strip *.jpg
También podría usarse una ruta relativa como-ruta OUTPUT_DIRsi los quieres en la subcarpeta.
Si tiene que abrir esos archivos directamente desde Outlook, recomendaría, por ejemplo, IrfanView, que no tiene problemas para abrir esos archivos. Simplemente configúrelo como programa de archivos gráficos predeterminado.
Algunas personas recomendaron algo relacionado con el cambio de perfiles predeterminados en la configuración de su pantalla, pero lo tengo configurado en mi tipo de monitor, por lo que no quiero alterar esa configuración.
Si quieres esto completamente automático necesitas 3 cosas:
- Editor de programas predeterminados (https://defaultprogramseditor.com/)
- Imagen mágica (https://imagemagick.org/download/binaries/ImageMagick-7.0.10-1-portable-Q16-x64.zip)
- Script por lotes que procesará el archivo abierto.
1) Primero descomprima ImageMagick en c:\apps\ImageMagick-7.0.10-1-portable-Q16-x64
2) Crear script por lotesc:\aplicaciones\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) DescomprimirEditor de programas predeterminadosy ejecútelo, luego elijaConfiguración de tipo de archivo > Menú contextual > buscar extensión jpg, luego > Agregar...
Nombre del comando:Open Fixed Image
Ruta del programa:"C:\apps\gfxopen.bat" "%1"
Entonces escoge"Abrir imagen fija"y presione"Establecer el comando seleccionado como predeterminado"
EntoncesGuardar menú contextual
Eso es todo :)
Respuesta2
Tuve el mismo problema y lo resolví siguiendo unos sencillos pasos:
- Abra el archivo de imagen con Notepad++ o cualquier otro editor hexadecimal similar.
- Busque
ICC_PROFILE
dentro del texto y reempláceloICC_PROFILX
(generalmente en la primera línea de texto del archivo) - Guarde el archivo editado. ¡Eso es todo!
Respuesta3
Respuesta4
Para cualquier desarrollador de Android que pueda encontrarse con esto: Parece que a Windows Photo Viewer no le gustan los metadatos del perfil ICC que Bitmap.compress
escribe (tal vez no le gustencualquier¿Perfiles ICC en realidad? No lo he comprobado).
Aquí hay una manera de eliminar simplemente ese segmento de metadatos del archivo JPEG, lo que da como resultado un JPEG que vuelve a ser compatible con 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();
}
}