質問: 'https://www.google.com'; await page.goto(url, { waitUntil: 'networkidle0' }); await page.screenshot({ type: 'jpeg', path: 'ss.jpg' }); ``` 保存したファイルを Windows8.1のPC上でダブルクリックすると Windowsフォトビューアーが起動しますが 「この画像をWindows フォトビューアーで表示できません。利用できる十分なメモリがない可能性があります。」 のようなエラーになります。 ss.jpgよりもファイルサイズが大きい別のファイル(puppeteerで作成したものではない)は開けるので、メモリうんぬんのエラーメッセージは該当しないと判断しています。 また、スライドショーでss.jpgを開いたときは画像が表示できます。 Chromeのブラウザにss.jpgをドラッグ&ドロップした場合も画像が表示されます。 jpgファイルとして成立はしているけれど、特定のソフト(Windowsフォトビューアー)でだけ開けないという状況だと思われます。 await page.screenshot({ type: 'jpeg', path: 'ss.jpg' }); の部分を await page.screenshot({ type: 'png', path: 'ss.png' }); にした場合は Windowsフォトビューアーでもss.pngが開けます。 'https://www.google.com' 以外のURLでスクリーンショットを撮った場合も同様の現象です。 jpg保存すると、画像が表示されない。 png保存すると、画像が表示される。 jpgもスライドショーやブラウザでは画像が表示される。 puppeteerで保存した画像以外のjpgは特に問題無く表示されるので、puppeteer側での問題だと認識しています。 特定のソフトでだけjpgファイルが開けない現象について、心当たりがあればご教示ください。 いまのところ、 ・jpeg自体にバージョンとかコーデックみたいなものがあるのでは? ・puppeteerやWindowsフォトビューアーで扱えるjpegのバージョンは? みたいな想定で調べている最中です。 ![ss.jpg](https://i.stack.imgur.com/m5TnW.jpg)
回答: 半分解決したので自己回答。 下記リンクを参考にICC_PROFILEをICC_PROFILXに書き換え。 Windowsフォトビューアーでss.jpgが開けるようになりました。 具体的な手順 ・Visual Studio CodeにHex Editorというプラグインをインストール ・Visual Studio Codeでss.jpgを右クリック > Open With > Hex Editor ・Hex Editorで開いたss.jpgからICC_PROFILEの文字を見つけICC_PROFILEXに書き換え(EをXに書き換え) ICC_PROFILEというのがあると、Windowsフォトビューアーでファイルが開けないみたいです。 ここは一旦閉じて、puppeteerの質問としてではなく 「javascriptとICC_PROFILE」の視点で別途質問をあげようかと思います。