2011-07-07 52 views
221

Tôi đang cố gắng sử dụng chương trình dòng lệnh convert để chuyển PDF thành hình ảnh (JPEG hoặc PNG). Đây là one of the PDFs mà tôi đang cố chuyển đổi.Chuyển đổi PDF sang hình ảnh có độ phân giải cao

Tôi muốn chương trình cắt bỏ khoảng trắng thừa và trả lại hình ảnh chất lượng cao đủ để có thể dễ dàng đọc các chữ viết tay.

Đây là số best attempt hiện tại của tôi. Như bạn có thể thấy, các trang trí hoạt động tốt, tôi chỉ cần làm sắc nét lên độ phân giải khá một chút. Đây là lệnh Tôi đang sử dụng:

convert -trim 24.pdf -resize 500% -quality 100 -sharpen 0x1.0 24-11.jpg 

Tôi đã cố gắng để đưa ra quyết định có ý thức sau:

  • thay đổi kích thước lớn hơn (đã không ảnh hưởng đến độ phân giải)
  • làm cho chất lượng càng cao càng tốt
  • sử dụng các -sharpen (tôi đã thử một loạt các giá trị)

Bất kỳ Sugg ước tính xin vui lòng nhận được độ phân giải của hình ảnh trong PNG/JPEG cuối cùng cao hơn sẽ được đánh giá cao!

+0

Tôi không biết, bạn cũng có thể thử [link] (http://www.pdfill.com/pdf_tools_free.html) ... – karnok

+0

Xem thêm: http: //askubuntu.com/a/50180/64957 –

Trả lời

276

Dường như các công việc sau:

convert   \ 
    -verbose  \ 
    -density 150 \ 
    -trim   \ 
    test.pdf  \ 
    -quality 100 \ 
    -flatten  \ 
    -sharpen 0x1.0 \ 
    24-18.jpg 

Nó là kết quả trong the left image. Hãy so sánh này để kết quả của lệnh ban đầu của tôi (the image on the right):

   

(Để thực sự xem và đánh giá cao sự khác biệt giữa hai, nhấp chuột phải vào mỗi và chọn " Mở hình ảnh trong Tab mới ... ".)

Cũng lưu ý các sự kiện sau:

  • Hình ảnh mờ hơn, mờ ở bên phải có kích thước tệp là 1,941,702 byte (1,85 MByte). Độ phân giải là 3060x3960 pixel, sử dụng không gian màu RGB 16 bit.
  • Hình ảnh sắc nét hơn ở bên trái có kích thước tệp là 337,879 byte (330 kByte). Độ phân giải của nó là 758x996 pixel, sử dụng không gian màu xám 8 bit.

Vì vậy, không cần phải thay đổi kích thước; thêm cờ -density. Giá trị mật độ 150 là lạ - việc thử một loạt các giá trị dẫn đến một hình ảnh trông tồi tệ hơn theo cả hai hướng!

+44

Tham số 'mật độ' là một chút đặc biệt trong đó phải đến * trước * tệp đầu vào. Vì PDF là một định dạng tệp dựa trên vector không có khái niệm pixel nhiều, nó nói một cái gì đó giống như "trang là 8in bởi 12in". Nếu bạn muốn pixel, bạn sử dụng cài đặt 'density' để cho biết, số lượng pixel trên mỗi inch bạn muốn nhận được ở đầu ra. Ví dụ. với 150 bạn sẽ nhận được 8x150 = 1200 x 12x150 = 1800 pixel trong hình ảnh kết quả. Đó cũng là số lượng pixel mà các cài đặt làm sắc nét, độ tương phản, nén vv hoạt động. –

+0

Các công trình mài thực sự tốt với màu đen trên nền trắng. Tuy nhiên nó làm giảm khả năng đọc khi có văn bản màu đen trên nền màu xám. – snitch182

+5

Nó có thể dẫn đến nền đen trên Mac OS (xem http://stackoverflow.com/questions/10934456/imagemagick-pdf-to-jpgs-sometimes-results-in-black-background). Để khắc phục điều này, hãy thêm '-flatten'. – Rolf

8

Nó cũng cung cấp cho bạn kết quả tốt:

exec("convert -geometry 1600x1600 -density 200x200 -quality 100 test.pdf test_image.jpg"); 
98

Cá nhân tôi như thế này.

convert -density 300 -trim test.pdf -quality 100 test.jpg 

Nó nhỏ hơn gấp đôi kích thước tệp, nhưng có vẻ tốt hơn với tôi.

-density 300 đặt dpi là PDF được hiển thị tại.

-trim xóa mọi pixel cạnh có cùng màu với pixel góc.

-quality 100 đặt chất lượng nén JPEG thành chất lượng cao nhất.

Những thứ như -sharpen không hoạt động tốt với văn bản vì chúng hoàn tác mọi thứ mà hệ thống hiển thị phông chữ của bạn đã làm để làm cho chữ dễ đọc hơn.

Nếu bạn thực sự muốn nó thổi lên hãy sử dụng thay đổi kích thước tại đây và có thể giá trị dpi lớn hơn của một cái gì đó như targetDPI * scalingFactor Điều đó sẽ hiển thị PDF ở độ phân giải/kích thước bạn dự định.

mô tả các thông số trên imagemagick.org là here

+0

Kích thước gấp đôi kích thước chủ yếu do mật độ đầu ra đã được tăng gấp đôi và chất lượng nén jpg được đặt ở mức tối đa (do đó không nén nhiều). – rivimey

+0

Ít nitpick: JPG vẫn bị mất chất lượng 100% – relgukxilef

+0

@relgukxilef Cảm ơn, tôi đã sửa lỗi. – majinnaibu

11

tôi đã tìm thấy nó cả hai nhanh hơn và ổn định hơn khi hàng loạt chế biến PDF lớn thành PNG và JPG để sử dụng cơ bản gs (aka Ghostscript) lệnh convert sử dụng .

Bạn có thể thấy lệnh trong đầu ra của convert -verbose và có một vài chỉnh sửa khác có thể có (YMMV) rất khó/không thể truy cập trực tiếp qua convert.

Tuy nhiên, sẽ khó hơn khi bạn cắt tỉa và mài sắc bằng cách sử dụng gs, vì vậy, như tôi đã nói, YMMV!

2

Một đề xuất khác là bạn có thể sử dụng GIMP.

Chỉ cần tải tệp PDF trong GIMP-> lưu dưới dạng .xcf và sau đó bạn có thể làm bất cứ điều gì bạn muốn với hình ảnh.

+8

Lý do để làm điều này thông qua dòng lệnh là tôi đã có hàng ngàn trang cần quá trình này. – JBWhitmore

+0

Ngoài ra, GIMP hiển thị trang trên * loading *, vì vậy bạn sẽ muốn đặt độ phân giải khi bạn chọn các trang cần tải. Việc bạn đặt thông số đầu ra là bao nhiêu nếu bạn bắt đầu với 100 DPI mặc định khi tải. –

0

Tệp PNG bạn đính kèm trông thực sự bị mờ. Trong trường hợp nếu bạn cần sử dụng xử lý hậu kỳ bổ sung cho từng hình ảnh bạn đã tạo dưới dạng xem trước PDF, bạn sẽ giảm hiệu suất giải pháp của mình.

2JPEG có thể chuyển đổi tập tin PDF bạn gắn liền với một đẹp JPG và cây trồng lề trống làm sắc nét trong một cuộc gọi:

2jpeg.exe -src "C:\In\*.*" -dst "C:\Out" -oper Crop method:autocrop 
+0

Độ mờ trong PNG gốc là điều đã truyền cảm hứng cho câu hỏi ngay từ đầu, và PNG trong câu trả lời được chấp nhận là khá sắc nét. – JBWhitmore

12

tôi sử dụng pdftoppm trên dòng lệnh để có được những hình ảnh ban đầu, điển hình với độ phân giải 300dpi , do đó, pdftoppm -r 300, sau đó sử dụng convert để thực hiện chuyển đổi trang trí và PNG.

+0

trong khi không sử dụng Imagemagick, giải pháp này có vẻ như hầu hết theo tinh thần chuyển đổi trong suốt. 'pdftoppm' cũng có thể xuất ra JPEG và PNG. –

-1

Sử dụng dòng lệnh này:

convert -geometry 3600x3600 -density 300x300 -quality 100 TEAM\ 4.pdf team4.png 

này nên chuyển đổi một cách chính xác các tập tin như bạn đã yêu cầu.

8

thường tôi trích xuất hình ảnh nhúng với 'pdfimages' ở độ phân giải gốc, sau đó sử dụng chuyển đổi ImageMagick để định dạng cần thiết:

$ pdfimages -list fileName.pdf 
$ pdfimages fileName.pdf fileName # save in .ppm format 
$ convert fileName-000.ppm fileName-000.png 

này tạo ra các tập tin kết quả tốt nhất và nhỏ nhất.

Lưu ý: Đối với lossy ảnh nhúng JPG, bạn phải sử dụng -j:

$ pdfimages -j fileName.pdf fileName # save in .jpg format 

On ít nền tảng Win miễn là bạn phải tải về một gần đây (0,37 2015) 'poppler-util' nhị phân từ: http://blog.alivate.com.au/poppler-windows/

0

Người dùng Linux tại đây: Tôi đã thử tiện ích dòng lệnh convert (đối với PDF sang PNG) và tôi không hài lòng với kết quả. Tôi thấy điều này được dễ dàng hơn, với một kết quả tốt hơn:

  • chiết xuất trang pdf (s) với pdftk
    • ví dụ: pdftk file.pdf cat 3 page3.pdf
  • mở (nhập khẩu) mà pdf với GIMP
    • quan trọng: thay đổi nhập Resolution từ 100 thành 300 hoặc 600 pixel/in
  • trong GIMP xuất khẩu như PNG (phần mở rộng thay đổi tập tin để .png)

Edit: thêm hình ảnh, theo yêu cầu ở Bình luận. Chuyển đổi lệnh được sử dụng:

convert -density 300 -trim struct2vec.pdf -quality 100 struct2vec.png

GIMP: nhập khẩu ở 300 dpi (px/in); được xuất dưới dạng mức nén PNG 3.

Tôi chưa sử dụng GIMP trên dòng lệnh (lại: nhận xét của tôi, bên dưới).

pdf2png

enter image description here

+0

Điều này có thể tự động nếu bạn có hàng ngàn trang không? – JBWhitmore

+0

@JBWhitmore: câu hỏi hay. Chắc chắn nó sẽ đơn giản để kịch bản lệnh pdftk, vì nó đã có trên dòng lệnh. Tôi đã thực hiện tìm kiếm Google thực sự nhanh chóng và thấy rằng GIMP có chế độ hàng loạt (tôi chưa thử nó, nhưng có vẻ như nó cũng có thể viết được): https://www.gimp.org/tutorials/Basic_Batch/ –

+0

Tuyệt. Ngoài ra, bạn có thể cập nhật câu trả lời của mình với hình ảnh song song của câu trả lời được chấp nhận so với những gì bạn nhận được với cách tiếp cận của mình không? – JBWhitmore

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