-all 플래그를 사용할 때 pdfimages에서 생성된 이미지가 다른 이유는 무엇입니까?

-all 플래그를 사용할 때 pdfimages에서 생성된 이미지가 다른 이유는 무엇입니까?

pdfimages -allPDF에서 이미지를 기본 형식으로 추출하는 것이 내 이해입니다 .

-all따라서 해당 명령에서 추출된 JPG(손실) 이미지는 옵션 없이 생성된 .ppm 및 .pbm 파일은 물론 마우스 오른쪽 버튼을 클릭하여 생성된 PNG(무손실) 파일 과 동일한 픽셀 정보를 가질 것으로 예상했습니다. Evince에 이미지를 저장하세요.

그러나 ImageMagick compare명령을 사용하면 위의 다른 옵션과 비교하여 JPG 파일에 포함된 이미지에 차이가 있음을 알 수 있습니다. 재현하려면 이 링크(https://fccid.io/document.php?id=2149405pdfimages), 이를 및 의 인수로 사용 pdfimages -all하고 첫 번째 .ppm 파일과 첫 번째 .jpg 파일을 의 인수로 사용합니다 compare. 이렇게 하면 이미지의 차이를 나타내기 위해 빨간색이 포함된 이미지 파일이 생성됩니다.

제가 이해하지 못하는 것이 있나요? pdfimages.ppm 및 .pbm 파일을 생성할 때 기본적으로 픽셀 정보를 추가합니까 ?

답변1

pdfimages -all반환합니다정확한pdf에 저장된 파일입니다.

왕복을 통해 이를 테스트할 수 있습니다. jpg 이미지로 시작하여 LaTeX를 사용하여 PDF에 추가하고 를 사용하여 추출한 pdfimages -all다음 원본과 비교합니다. (LaTeX를 사용하는 이유는 나중에 설명하겠습니다.)

귀하의 링크에서 추출한 첫 번째 jpg 이미지가 있고 이름을 device.jpg. LaTeX를 사용하여 PDF 파일에 넣어 보겠습니다.

$ cat img.tex 
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics[width=5in,keepaspectratio]{device}
\end{document}
$ pdflatex img
[...snip...]
Output written on img.pdf (1 page, 672455 bytes).
Transcript written on img.log.

이제 이를 추출하여 pdfimages -all원본과 비교해 보겠습니다.

$ pdfimages -all img.pdf img-all
$ cmp device.jpg img-all-000.jpg 
$

추출된 jpg는바이트 단위로 동일함원본에.

각주: LaTeX를 사용하는 이유

위 테스트는 PDF 작성자만으로는 수행할 수 없습니다. 모든 PDF 작성자가 방해받지 않고 이미지를 PDF에 넣는 것은 아니기 때문입니다. 예를 들어 ImageMagick의 다음을 시도해 보겠습니다 convert.

$ convert device.jpg device.pdf
$ pdfimages -all device.pdf device-all
$ cmp device.jpg device-all-000.jpg 
device.jpg device-all-000.jpg differ: byte 4, line 1

convert이미지를 PDF에 넣기 전에 더 작은 크기로 다시 샘플링했습니다.

$ ls -1s device.jpg device-all-000.jpg 
528 device-all-000.jpg
656 device.jpg

이미지 정확성은 pdflatex의 설계 목표의 일부였습니다. 다른 PDF 작성 소프트웨어는 기본적으로 이미지를 PDF에 배치하기 전에 이미지를 "최적화"할 수 있습니다.

업데이트: 슈리바차R다음과 같은 점을 지적한다.img2pdf유틸리티는 또한 이미지를 PDF로 변환하는 무손실 방법을 제공합니다. TeX를 사용하지 않는 사용자도 사용하기가 훨씬 간단할 것입니다.

관련 정보