X Clipboard가 JPG 이미지를 대용량 파일로 저장하는 이유는 무엇입니까?

X Clipboard가 JPG 이미지를 대용량 파일로 저장하는 이유는 무엇입니까?

저는 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 형식으로 다운로드된 이유는 무엇입니까?
  • 이미지 크기를 크게 늘리는 원인이 되는 클립보드에 저장된 정확한 데이터는 무엇입니까?

관련 정보