2009-10-11 16 views
6

Mam kilka diagramów utworzonych za pomocą narzędzia do tworzenia diagramów Java, które napisałem - są to głównie czarno-białe diagramy, z blokami w wodzie i od czasu do czasu inne kolory. Są one obecnie zapisywane jako pliki JPG i chcę je wstawić do książki, którą przygotowuję dla Print On Demand.Ustawianie DPI dla plików PNG

Książka jest plikiem ODT OpenOffice, który później zostanie przekonwertowany na plik PDF.

Obecnie używam plików JPG, ale drukarka, której używają, wymaga 300 DPI, więc zmodyfikowałem narzędzie do tworzenia diagramów, aby ustawić xDensity i yDensity na 300, i resUnits na 1, używając getAsTree(), a następnie rozwinąć diagram o współczynnik 3 (300/96). IMO wynik wygląda całkiem nieźle!

Niestety, ktoś z innego forum zwrócił uwagę, że diagramy liniowe są "pomieszane" na plikach JPG, więc zasugerowałem przejście na pliki PNG lub ewentualnie BMP, przy czym oba pliki ODT pozwalają na wstawienie.

Mój problem polega na tym, że BMP nie wydają się mieć DPI, a PNGMetadata nie obsługuje getAsTree(). Czy ktoś może wskazać mi właściwy kierunek? Dzięki.

Odpowiedz

0

Postanowiłem nie spróbuj zrobić to programowo. Zamiast tego tworzę oryginalny diagram w PNG, a następnie konwertuję na 300 DPI używając Irfanview. Funkcja wsadowa Irfanview pozwala mi konwertować do 300 DPI, skalować, aby skompensować i ustawić na skalę szarości, wszystko w jednej operacji - i na wielu plikach jednocześnie. To wydaje się być najlepszym rozwiązaniem - ale dzięki wszystkim!

3

PNG, BMP i dziesiątki innych formatów graficznych nie kompresują diagramów - kompresja jest prawdopodobnie tym, co robił twój komentarz. Pliki JPEG świetnie nadają się do zdjęć, ale zasysają na schematy.

Być może warto zajrzeć do SVG i innych formatów wektorowych. Lub jeśli pozwala na to twoje środowisko, eksportując kompresję JPEG 0% i konwertując je do innego formatu bezstratnej reprodukcji w 300DPI.

Nadzieję, że pomaga!

+0

Ktoś inny wspomniał o SVG - Przyjrzę się - dzięki! –

+0

+1. Wydaje mi się, że to pytanie dotyczy obrazów wektorowych a rastrowych. A OP powinien z pewnością wykorzystywać wektory do tworzenia własnych diagramów. – Sparhawk

+1

PNG z pewnością kompresuje twoje obrazy. Jest to po prostu kompresja bezstratna, w przeciwieństwie do stratnej kompresji JPEG. – Matt

19

ja nie rozumiem getAsTree (część), ale odpowiedzi na pytanie, które pojawia się w tytule ustawienia dpi do plików PNG, można użyć narzędzia ImageMagick convert:

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

Chciałem po prostu zaprogramować DPI programowo ... ale zmieniłem zdanie! Więc imagemagick brzmi interesująco - dziękuję! –

+0

Wygląda na to, że po wprowadzeniu PNG jako danych wejściowych kanał alfa zostanie utracony. –

+1

Może tu pomóc "-alpha Set" lub "-alpha On". Ale dokumentacja (http://www.imagemagick.org/script/command-line-options.php) jest trochę zagmatwana i nie mam żadnych pngów z kanałem alfa do przetestowania. – RobS

Powiązane problemy