흐릿하거나 흐릿하지 않도록 PNG를 고품질의 PDF로 변환하려면 어떻게해야합니까?


54

PDF 파일을 PNG 이미지로 변환하는 방법에 대한 많은 질문이 있지만, 멋진 PNG 파일을 가져 와서 기본적으로 흐리게 보이거나 PDF 파일에 포함 시키려고합니다. 흐린.

imagemagic을 설치하면 다음과 같은 간단한 변환을 수행 할 수 있습니다.

convert sample.png sample.pdf

또한 깊이와 품질 설정을 설정하기 위해 많은 스위치를 사용해 보았습니다.

convert -quality 100 sample.png sample.pdf

그러나 PDF는 여전히 흐릿하고 흐릿하게 보입니다.

샘플 이미지는 다음과 같습니다.

http://img406.imageshack.us/img406/6461/picture3mu.png

png로서 선명하고 깨끗합니다. PDF로 변환하면 같은 크기 일지라도 흐릿하게 보입니다.

그림 4.png http://img803.imageshack.us/img803/9969/picture4at.png

고품질의 PNG를 PDF로 변환하려면 어떻게해야합니까?


귀하의 질문에 대한 답을 찾을 수 있기를 바랍니다. 그러나 이미지를 JPG 형식으로 저장하는 것은 PDF의 주어진 속성이라고 생각합니다. PNG는 JPG보다 품질이 훨씬 좋습니다.
jippie

1
@cwd : .tex 파일에 넣고 PDF를 생성하려고 했습니까? 예를 들어 \usepackage[pdftex, final]{graphicx}및을 사용하십시오 \includegraphics[width=516px]{calendar.png}.
엠마누엘 버그

2
@jippie : 아니요, PDF 비트 맵을 무손실로 저장할 있습니다 . 링크는 형식이 아닌 압축 알고리즘 목록을 제공합니다. PDF 내부의 비트 맵 데이터는 JPEG 또는 TIFF로 직접 추출하여 볼 수 없기 때문에 PDF 이미지가 JPEG (손실)라는 말은 그리 멀지 않습니다. ), JPEG 2000 (또는 손실) 또는 여러 TIFF 변형 (무손실). 무엇 입니다 , 사실은하지만, 주어진 PDF 증류기는 DCT (일명 JPEG) 형태로 변환 비트 맵에 기본적으로, 대신 무손실 양식을 사용하라고해야 할 수 있다는 것이다.
워렌 영

@cwd 답을 받아들이는 것에 대해 생각해 보셨습니까? 생각 user32208 의 대답은 오히려 좋은 unix.stackexchange.com/a/64495/16920
레우 레오폴드 헤르츠 준영

답변:


34

-density옵션을 사용해보십시오 . 기본 해상도는 인치당 72 도트입니다. 그래서 같은 것을 시도하십시오 -density 300.

자세한 내용 -density은 ImageMagick 명령 줄 옵션 설명서 를 참조하십시오 .


밀도가 확실히 핵심 인 것 같습니다. 크기와 밀도는 반비례 관계가있는 것처럼 보이므로 모양과 파일 크기 모두에서 최적의 결과를 얻기 위해 두 가지 설정을 모두 사용하고 있습니다 ... 정해진 공식이 있다면 알고 싶습니다.
브라이언 Z

최고의 밀도 옵션을 찾는 방법은 무엇입니까? with density 300예제 사진에서 데이터가 얼마나 손실 됩니까? 결과는 입력에 달려 있다고 생각합니다. 그것에 대해 새로운 스레드는 여기 unix.stackexchange.com/q/292025/16920
레우 레오폴드 헤르츠 준영에게

이것은 나에게 품질을 전혀 바꾸지 않습니다.
기 illa 슈발리에

19

에서 좋은 pdf 출력을 얻는 것은 매우 복잡 할 수 있습니다 convert. img2pdf대신 시도하십시오 . 읽어보기에서 :

JPEG 및 JPEG2000 파일을 불필요하게 다시 인코딩하지 않고 이미지를 PDF로 무손실 변환합니다. 따라서 품질 손실 및 불필요한 대용량 출력 파일이 없습니다.

명확히하기 위해 : PDF는 손실없는 JPEG 2000 이미지를 포함 할 수 있습니다 ( 대부분의 독자는 이미지 를 지원하는 것으로 보입니다 ). 따라서이 변환은 완전히 무손실입니다.

convert sample.png -quality 0 sample.jp2
img2pdf -o sample.pdf sample.jp2

(물론 JP2 델리게이트를 사용할 수 있다고 가정하십시오 : check identify -list format | grep JP2.)


4
이것은 IMHO의 가장 좋은 대답이지만, PDF가 손실없는 JPEG 2000 이미지를 포함 할 수 있다는 점을 더 잘 설명해야합니다. 따라서 OP에 대한 전체 명령은 다음과 같습니다 convert sample.png -quality 0 sample.jp2; img2pdf -o sample.pdf sample.jp2. (물론 JP2 델리게이트를 사용할 수 있다고 가정 : check identify -list format | grep JP2)
Nemo

1
Ubuntu 14의 표준 리포지토리를 고집 convert하려면 tiff를 누른 다음 tiff2pdf.
Camille Goudeseune 17시 24 분

이것은 훌륭한 답변입니다. 대단히 감사합니다.
Lyubomyr Shaydariv 님이

@ brian-z 귀하의 답변으로 , 논쟁을 설명해 주 -quality 0시겠습니까?
SebMa

SebMa, @Nemo가 그 명령을 추가했지만, -quality 100대신 사용해야한다고 생각 합니까?
브라이언 Z

14

PDF에서 품질의 손실로 인식하는 것은 PDF 뷰어앤티 앨리어싱 기능 의 영향 일뿐 입니다.

evincePDF를 보는 데 사용 하면 앤티 앨리어싱 기능이 특정 확대 / 축소 (내 빠른 테스트에서 300 %)에서 자동으로 꺼지는 것을 볼 수 있습니다. 확대를 계속하면 생생하게 볼 수 있습니다. 어느 시점에서 픽셀이 갑자기 선명하게 보입니다. 정확한 이미지 검사를 위해 앤티 앨리어싱을 해제해야하는 시점입니다.


흠-그건 말이되지만 이미지와 "초기보기"를 100 %로 설정하여 더 선명하게 보이기를 바랐습니다.
cwd

1
@cwd 이미지 평활화의 실제 원인 인 앤티 앨리어싱 으로 확대 / 축소 (파일 검사 방법)를 착각하지 마십시오 . 이미지가 제대로 저장되었습니다. 당신을 속이는 것은 PDF 뷰어입니다. 그러나 다른보기 응용 프로그램을 사용하거나 설정을 변경하는 경우에도 다른 방법 일 수 있습니다. 그런 다음 PDF 파일에서 선명한 이미지를, 이미지 뷰어에서 부드럽게 PNG 파일을 볼 수 있습니다.
rozcietrzewiacz

3

위의 Brian Z는 아래를 제공합니다. 아래는 정확하고 완전히 가역적이며 무손실입니다 (변환 단계가 실제로 무손실이라고 가정합니다. PDF 구조 / 리더를 준수하려면 png에서 lossless jp2로 변환해야합니다 (제 생각에).

$ convert sample.png -quality 0 sample.jp2
$ img2pdf -o sample.pdf sample.jp2

그러나 .png 파일을 다음과 같이 img2pdf에 직접 제공 할 수 있습니다.

$ img2pdf -o sample.pdf sample-page1.png <sample-page2.png ...>

이렇게하면 가장 작은 pdf 파일이 생성되고 png의 원시 16 진수가 pdf 내의 객체에 손실없이 삽입됩니다 *.

단점은이 프로세스는 jp2를 사용하는 것과는 반대로 되돌릴 수 없다는 것입니다. 머리글 / 바닥 글 및 청크 머리글 / 바닥 글 데이터가 원본 그림 데이터 (삭제 된 메타 데이터가 pdf 구조에 통합됨) 만 남기고 삽입 된 png에서 제거되었습니다 (실제로는 파일을 더 작게 만듭니다!). 아마도 pdf를 "해킹"하여 기술적으로 컨테이너와 호환되지 않는 원시 png를 표시합니다. 파이어 폭스에서 잘 표시되고 모든 현대 독자에게 잘 표시 될 수 있지만 png가 컨테이너와 호환되지 않으면 엄격한 독자가 원시 png 데이터를 렌더링하지 않을 수 있습니다 (올바르게 처리 / 처리하지 않아야 함).

여기서는 해시가 pdf에 입력되는 것과 일치하는 해시가있는 png 파일을 추출하고 재구성하는 데 도움이되는 매우 원시적 인 bash 스크립트를 찾을 수 있습니다. https://github.com/jack4455667788/RebuildRawPNGExtractedFromPDF


2

PDF는 벡터 형식 (즉, 파일에 그릴 선에 대한 설명이 포함되어 있음)이고 다른 형식 (JPG, PNG)은 래스터 형식입니다 (파일은 각 픽셀을 칠하는 색상을 나타냄). PDF를 날려 버린 경우에도 여전히 선명한 선입니다. JPG 및 PNG는 픽셀 화를 보여줍니다.

(OK, OK, 거짓말했습니다. PDF도 래스터 일 수 있습니다).


2

png-to-pdf -density매개 변수의 경우 큰 것이 아니라 작은 것이 좋습니다. 당신은 같은 것을 시도 할 수 있습니다convert -quality 100 -density 50


3
아니, 더 높은 밀도는 확실히 더 좋으며, 테스트를 마쳤으며, 50 개의 매우 눈에 잘 띄는 픽셀이 나타 났으며, 300은 멋지고 선명하게 보입니다.
shaunhusain

이것은 혼란 스럽지만 밀도가 높을수록 출력 해상도가 낮아진다 고 생각합니다. 즉, 출력이 희미한 경우 (원래 질문의 예와 같이 과도하게 앨리어싱 된 경우) 밀도가 낮을수록 원하는 것입니다. 그러나 PDF가 픽셀 화되면 실제로 더 높은 밀도 로 변환해야합니다 .
Brian Z
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.