it-swarm-eu.dev

Jak lze převést PNG na PDF ve vysoké kvalitě, aby nebyl rozmazaný nebo rozmazaný?

Existuje spousta otázek o tom, jak převést soubor PDF na obrázek PNG), ale já chci vzít pěkný ostrý soubor PNG a prostě ho v podstatě zabalit nebo vložit do a PDF soubor, aniž by vypadal rozmazaně nebo rozmazaně).

Uvědomil jsem si, že s nainstalovanou imagemagickou mohu provést jednoduchou konverzi jako:

convert sample.png sample.pdf

Také jsem vyzkoušel mnoho přepínačů pro nastavení hloubky a také nastavení kvality:

convert -quality 100 sample.png sample.pdf

Nicméně PDF stále vyjde vypadat rozmazaně/fuzzy).

Zde je ukázkový obrázek:

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

Jako png je to svěží a čisté. Když ji převedu do formátu PDF, vypadá to stejně rozmazaně:

Obrázek 4.png http://img803.imageshack.us/img803/9969/picture4at.png

Jak lze převést PNG na PDF ve vysoké kvalitě?

59
cwd

Zkuste použít -density možnost. Výchozí rozlišení je 72 bodů na palec. Tak zkuste něco jako -density 300.

Odkaz viz -density v dokumentaci voleb příkazového řádku ImageMagick.

36
user32208

Získat dobrý výstup z formátu convert může být velmi komplikované. Snaž se img2pdf místo toho. Z readme:

Bezeztrátová konverze obrázků na PDF bez zbytečného překódování souborů JPEG a JPEG2000, bez ztráty kvality a zbytečného velkého výstupního souboru).

Pro vyjasnění: PDF umí vložit bezeztrátové obrázky JPEG 2000 (a zdá se, že většina čtenářů je podporuje ). Takže tato konverze je zcela bezeztrátová:

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

(Za předpokladu, že delegát JP2 je samozřejmě k dispozici: check identify -list format | grep JP2.)

22
Brian Z

Jsem si téměř jistý, že to, co vnímáte jako ztrátu kvality v PDF, je pouze efektem vašeho prohlížeče PDF - anti - aliasing .

Pokud k prohlížení PDF použijete evince, můžete vidět, že se funkce anti-aliasing automaticky vypne při určitém zvětšení (300% v mém rychlém testu). Vidíte to živě, když budete přibližovat - všimnete si, že v určitém okamžiku jsou pixely najednou jasně viditelné. To je místo, kde musí být vypnuto vyhlazování, aby byla umožněna přesná kontrola obrazu.

14
rozcietrzewiacz

Brian Z výše za předpokladu, že níže, což je správný, plně reverzibilní a bezeztrátový (za předpokladu, že krok převodu je ve skutečnosti bezeztrátový, což si myslím, že je nebo by alespoň mělo být) způsob, jak vložit png do pdf. Musíte být převedeni z png na bezeztrátový jp2, abyste byli v souladu s PDF struktura/čtenáři (myslím)).

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

Je však třeba poznamenat, že můžete sami dodat soubory .png přímo do img2pdf jako:

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

Tím vznikne nejmenší soubor PDF a bezztrátově vloží surový hex PNG do objektů uvnitř pdf *.

* Nevýhodou je, že tento proces není reverzibilní na rozdíl od použití jp2. Data záhlaví/zápatí a kusů záhlaví/zápatí byla odstraněna (což ve skutečnosti činí soubory ještě menšími!) Z png, který je vložen, přičemž zůstávají pouze nezpracovaná obrazová data (odstraněná metadata jsou integrována do struktury pdf), pravděpodobně „hackne“ pdf, aby se zobrazil surový png, který není technicky kompatibilní s kontejnerem. Zobrazuje se v firefoxu dobře a může se zobrazovat dobře ve všech moderních čtečkách, ale pokud png není v souladu s kontejnerem, pak přísní čtenáři nemusí vykreslit surová png data (protože by to neměli očekávat/zpracovat správně).

Zde najdete extrémně syrový bash skript, který pro mě pracoval, aby extrahoval a rekonstruoval soubory png s odpovídajícími hashy jako ty, které se používají pro vstup do pdf. https://github.com/jack4455667788/RebuildRawPNGExtractedFromPDF

4
Jack Hadley

PDF je vektorový formát (tj. Soubor obsahuje popis čar, které mají být nakresleny), zatímco ostatní formáty (JPG, PNG) jsou rastrové formáty (soubor popisuje, jakou barvu má malovat každý pixel). Pokud vyhodíte PDF= nahoru), jsou to stále jen ostré čáry, JPG a PNG ukazují pixelaci.

(OK, OK, lhal jsem. A PDF může být také rastr).

2
vonbrand

Myslím, že pro png-to-pdf -density parametr by měl být spíše malý než velký. Můžete zkusit něco jako convert -quality 100 -density 50

2
user39384