2009-10-11 32 views
6

Tôi có một loạt sơ đồ được tạo bằng cách sử dụng công cụ lập sơ đồ Java mà tôi đã viết - chúng hầu hết là sơ đồ màu đen và trắng, với các khối trong thủy, và thỉnh thoảng các màu khác. Chúng hiện đang được lưu dưới dạng tệp JPG và tôi muốn chèn chúng vào một cuốn sách mà tôi đang chuẩn bị cho In theo yêu cầu.Cài đặt DPI cho các tệp PNG

Cuốn sách này là một tập tin ODT OpenOffice, mà sau này sẽ được chuyển đổi sang PDF.

Hiện tại tôi sử dụng tệp JPG, nhưng cơ sở in mà họ sử dụng yêu cầu 300 DPI, vì vậy tôi đã sửa đổi công cụ lập sơ đồ của tôi để đặt xDensity và yDensity thành 300 và resUnits thành 1, sử dụng getAsTree() và sau đó mở rộng sơ đồ theo hệ số 3 (300/96). IMO kết quả trông khá tốt!

Thật không may, một người nào đó trên diễn đàn khác đã chỉ ra rằng biểu đồ đường "bị mờ" trên tệp JPG, vì vậy tôi khuyên bạn nên chuyển sang PNG hoặc tệp BMP có thể chèn cả hai tệp ODT.

Vấn đề của tôi là BMP dường như không có một DPI, và PNGMetadata dường như không hỗ trợ getAsTree(). Ai đó có thể chỉ cho tôi đi đúng hướng? Cảm ơn.

Trả lời

0

tôi quyết định không cố gắng làm điều này theo chương trình. Thay vào đó, tôi tạo sơ đồ gốc trong PNG, sau đó chuyển đổi thành 300 DPI bằng cách sử dụng Irfanview. Khả năng hàng loạt của Irfanview cho phép tôi chuyển đổi thành 300 DPI, mở rộng quy mô để bù trừ và đặt thành thang màu xám, tất cả trong một thao tác - và trên nhiều tệp cùng một lúc. Đây có vẻ là giải pháp tốt nhất - nhưng dù sao cũng nhờ mọi người!

3

PNG, BMP và hàng chục định dạng hình ảnh khác không nén sơ đồ của bạn - nén có lẽ là những gì commentor của bạn đã nhận được ở. Các ảnh JPEG rất tuyệt vời cho các bức ảnh nhưng hút ở các biểu đồ.

Bạn có thể muốn xem xét SVG và các định dạng vectơ khác. Hoặc nếu môi trường của bạn cho phép, xuất 0% nén JPEG và chuyển đổi chúng thành định dạng khác để sao chép không mất dữ liệu ở 300DPI.

Hy vọng điều đó sẽ hữu ích!

+0

Người khác đã đề cập đến SVG - Tôi sẽ xem xét - cảm ơn! –

+0

+1. Dường như với tôi rằng câu hỏi này là về vector so với hình ảnh raster. Và OP chắc chắn nên sử dụng vectơ cho các sơ đồ tự tạo. – Sparhawk

+1

PNG chắc chắn sẽ nén hình ảnh của bạn. Nó chỉ là một nén lossless như trái ngược với nén lossy của JPEG. – Matt

19

Tôi không hiểu được một phần getAsTree(), nhưng trả lời câu hỏi xuất hiện trong tiêu đề, thiết lập dpi cho các tập tin PNG, bạn có thể sử dụng công cụ ImageMagick convert:

convert -density 300 -units pixelsperinch infile.jpg outfile.png 
+0

Tôi chỉ muốn nói rằng tôi muốn đặt DPI theo lập trình ... nhưng tôi đã thay đổi ý định! Vì vậy, imagemagick âm thanh thú vị - cảm ơn! –

+0

Dường như khi cung cấp PNG làm đầu vào, kênh alpha sẽ bị mất. –

+1

Hoặc "-alpha Set" hoặc "-alpha On" có thể trợ giúp tại đây. Nhưng tài liệu hướng dẫn (http://www.imagemagick.org/script/command-line-options.php) hơi khó hiểu và tôi không có bất kỳ pngs kênh alpha nào để kiểm tra. – RobS

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