2011-09-21 58 views
6

Khi tôi sử dụng lệnh GhostScript sau đây để tạo ra hình thu nhỏ jpg từ PDF, chất lượng hình ảnh thường rất nghèo:Làm thế nào để chuyển đổi PDF sang độ phân giải thấp (nhưng chất lượng tốt) JPEG?

gs -q -dNOPAUSE -dBATCH -sDEVICE=jpeggray -g465x600 -dUseCropBox -dPDFFitPage -sOutputFile=pdf_to_lowres.jpg test.pdf 

Ngược lại, nếu tôi sử dụng GhostScript để tạo ra một png độ phân giải cao, và sau đó sử dụng mogrify để chuyển đổi png độ phân giải cao thành jpg có độ phân giải thấp, tôi nhận được kết quả khá tốt.

gs -q -dNOPAUSE -dBATCH -sDEVICE=pnggray -g2550x3300 -dUseCropBox -dPDFFitPage -sOutputFile=pdf_to_highres.png test.pdf 
mogrify -thumbnail 465x600 -format jpg -write pdf_to_highres_to_lowres.jpg pdf_to_highres.png 

Có cách nào để đạt được kết quả tốt, trong khi bỏ qua các trung gian pdf -> png bước-res cao? Tôi cần làm điều này cho một số lượng lớn các tệp pdf, vì vậy tôi đang cố gắng giảm thiểu thời gian tính toán.

Dưới đây là các liên kết đến những hình ảnh tham chiếu ở trên:

  1. test.pdf
  2. pdf_to_lowres.jpg
  3. pdf_to_highres.png
  4. pdf_to_highres_to_lowres.jpg
+0

Hãy xem [câu trả lời hữu ích này] (https://serverfault.com/a/797110/168205), nó có thể khắc phục sự cố của bạn mà không cần sử dụng Ghostscript. Nó đã làm cho tôi. – likeitlikeit

Trả lời

5

Một tùy chọn dường như cải thiện sản lượng rất nhiều: -dDOINTERPOLATE. Dưới đây là những gì tôi nhận được bằng cách chạy lệnh tương tự như bạn nhưng với -dDOINTERPOLATE tùy chọn:

JPEG with -dDOINTERPOLATE

Tôi không chắc chắn những gì interpolation phương pháp này sử dụng nhưng có vẻ như khá tốt, đặc biệt là so với các kết quả mà không có nó .

P.S. Xem xét xuất hình ảnh PNG (-sDEVICE=pnggray) thay vì JPEG. Đối với hầu hết các tài liệu PDF (có xu hướng chỉ có một vài màu đồng nhất), đó là lựa chọn more appropriate.

+0

+1 cho "Xem xét xuất hình ảnh PNG", không có viên đạn bạc trong nén hình ảnh và jpeg không phải là lựa chọn tốt cho hình ảnh có văn bản hoặc hình ảnh có độ tương phản cao nói chung. – yms

+0

Nếu tôi có thể bầu 100 lần câu trả lời này !! Sau ngày và ngày, -dDOINTERPOLATE đã là giải pháp – David

3

PDF của bạn trông giống như nó chỉ là một wrapper xung quanh một jpeg rồi.

Hãy thử sử dụng chương trình pdfimages từ xpdf để trích xuất hình ảnh thực tế thay vì hiển thị vào tệp.

+1

Điều đó có thể làm việc cho tệp thử nghiệm cụ thể này, nhưng tôi hy vọng một giải pháp mạnh mẽ hơn hoạt động ngay cả khi PDF không bao gồm một hình ảnh đơn lẻ. –

Các vấn đề liên quan