node.jsでpuppeteerを動かしています。

下記のようなコードでGoogleのトップページへアクセスし、スクリーンショットをjpgファイルとして保存しました。

```

    const puppeteer = require('puppeteer');
    
    browser = await puppeteer.launch({ headless: false });
    
    const page = await browser.newPage();
    const url = '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)](https://i.stack.imgur.com/m5TnW.jpg)
CC BY-SA 4.0
2021-05-28T08:20:54.803
76148
2021-05-28T13:43:51.527
2021-05-28T09:27:33.870
45540
45540
question
javascript windows 画像 puppeteer photoshop
puppeteerのscreenshotで保存したjpegファイルが開けない
半分解決したので自己回答。

下記リンクを参考にICC_PROFILEをICC_PROFILXに書き換え。  
Windowsフォトビューアーでss.jpgが開けるようになりました。  
<https://www.pcreview.co.uk/threads/windows-photo-viewer-
can%E2%80%99t-display-this-picture-because-there-might-not-be-enough-memory-
available-on-your-computer.4075896/>

具体的な手順  
・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」の視点で別途質問をあげようかと思います。
CC BY-SA 4.0
2021-05-28T13:43:51.527
76155
2021-05-28T13:43:51.527
45540
76148
answer