私はLinux設定でXクリップボードの奇妙な動作を調べてきました。
最初はWebブラウザから画像をコピーしましたが、後でファイルを保存したときに画像がJPG形式であることがわかりました。ところで、ブラウザからコピーした画像をWhatsAppに貼り付けようとすると、「追加しようとしている画像が16MB制限よりも大きい」というエラーメッセージが表示されました。
この問題を診断するために、次の手順を実行しました。
直接画像を保存:
- ブラウザから直接画像を保存してください。結果は1.7MB JPGです。
クリップボードの確認(初期):
xclip
クリップボードの内容を確認するために使用されます。text/html
この写真は形式を参照したことが確認された。最初は出力に使用できるPNG形式はありません-t TARGETS
。$ xclip -o selection clipboard -t TARGETS TIMESTAMP TARGETS MULTIPLE text/html text/_moz_htmlcontext text/_moz_htmlinfo UTF8_STRING COMPOUND_TEXT TEXT STRING text/plain;charset=utf-8 text/plain text/x-moz-url-priv
- 上記のターゲットの他のオプションはerrorには使用できません
Error: target ... not available
。検査目標は次のとおりですtext/html
。$ xclip -o -selection clipboard -t text/html <meta http-equiv="content-type" content="text/html; charset=utf-8"><img src="https://i.redd.it/678a4i8vv7l01.jpg" alt="Flashed Libreboot to X200 using BeagleBone Black : thinkpad" class=" nofocus" tabindex="0" aria-label="Flashed Libreboot to X200 using BeagleBone Black : thinkpad" role="button">
クリップボードサイズ:
- さらなる調査の結果、クリップボードにサイズが16MBを超えるPNG形式の画像が保存されていることがわかりました。
- インターネットを無効にしてFirefoxブラウザから画像をコピーします。
- オフラインで貼り付けようとしましたが、ターゲットが
image/png
アクティブになりました。画像をファイルに保存します。
これで$ xclip -o -selection clipboard -t image/png > /ramdisk/extracted_image.png
image/png
、コピーされたすべてのイメージでターゲットがアクティブになります。
クリップのみ(Clip Mann)テスト:
- Clipmanを無効にしてもう一度コピーしようとしましたが、WhatsAppに貼り付けるとまだ大きなPNG問題があります。
GIMPテスト:
- 画像をGIMPにコピーします。
xclip
これで、PNG に関連するターゲットが表示されます。
画像抽出:
クリップボードから画像を抽出する:18.1MB PNGを作成します。
$ \ls -l /ramdisk/extracted_image.png -rw-r--r-- 1 sourav sourav 18134833 Aug 16 19:44 /ramdisk/extracted_image.png
Clipmanのキャッシュされたバージョンはわずかに小さい16MB PNGです。
$ \ls -l ~/.cache/xfce4/clipman/image0.png -rw-r--r-- 1 sourav sourav 600951 Aug 16 20:55 /home/sourav/.cache/xfce4/clipman/image0.png
圧縮チェック:
pngcheck
2つの画像を実行します。$ pngcheck /home/sourav/.cache/xfce4/clipman/image0. OK: /home/sourav/.cache/xfce4/clipman/image0.png (4896x3264, 32-bit RGB+alpha, non-interlaced, 74.8%).
$ pngcheck /ramdisk/extracted_image.png OK: /ramdisk/extracted_image.png (4896x3264, 32-bit RGB+alpha, non-interlaced, 71.6%).
Exiftoolは次のことを確認します。
exiftool
2つの画像を実行します。$ exiftool /ramdisk/extracted_image.png /home/sourav/.cache/xfce4/clipman/image0.png ======== /ramdisk/extracted_image.png ExifTool Version Number : 12.60 File Name : extracted_image.png Directory : /ramdisk File Size : 18 MB File Modification Date/Time : 2023:08:16 19:44:02+05:30 File Access Date/Time : 2023:08:16 19:43:59+05:30 File Inode Change Date/Time : 2023:08:16 19:44:02+05:30 File Permissions : -rw-r--r-- File Type : PNG File Type Extension : png MIME Type : image/png Image Width : 4896 Image Height : 3264 Bit Depth : 8 Color Type : RGB with Alpha Compression : Deflate/Inflate Filter : Adaptive Interlace : Noninterlaced Significant Bits : 8 8 8 8 Image Size : 4896x3264 Megapixels : 16.0 ======== /home/sourav/.cache/xfce4/clipman/image0.png ExifTool Version Number : 12.60 File Name : image0.png Directory : /home/sourav/.cache/xfce4/clipman File Size : 16 MB File Modification Date/Time : 2023:08:16 19:50:18+05:30 File Access Date/Time : 2023:08:16 19:50:11+05:30 File Inode Change Date/Time : 2023:08:16 19:50:18+05:30 File Permissions : -rw-r--r-- File Type : PNG File Type Extension : png MIME Type : image/png Image Width : 4896 Image Height : 3264 Bit Depth : 8 Color Type : RGB with Alpha Compression : Deflate/Inflate Filter : Adaptive Interlace : Noninterlaced Significant Bits : 8 8 8 8 Image Size : 4896x3264 Megapixels : 16.0 2 image files read
上記の手順でわかるように、クリップボードはJPG画像を大きなPNG画像として保存します。これにより、いくつかの質問が生じます。
- これらの変化の原因は何ですか?ブラウザですか、Xシステムですか、それとも別のツールですか?
- 画像が最初はフォーマットでのみ提供されたのです
text/html
が、後でPNG形式でダウンロードされたのはなぜですか? - 画像サイズを大幅に増やす原因となるクリップボードに保存されている正確なデータは何ですか?