저는 Linux 설정에서 X 클립보드의 이상한 동작을 조사해 왔습니다.
처음에는 웹 브라우저에서 이미지를 복사했는데 나중에 파일을 저장했을 때 이미지가 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 문제가 있습니다.
김프 테스트:
- 이미지를 김프에 복사하세요.
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
두 개의 이미지를 실행합니다.$ 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
두 개의 이미지를 실행합니다.$ 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 형식으로 다운로드된 이유는 무엇입니까? - 이미지 크기를 크게 늘리는 원인이 되는 클립보드에 저장된 정확한 데이터는 무엇입니까?