मैं पीएनजी को उच्च गुणवत्ता में पीडीएफ में कैसे बदल सकता हूं ताकि यह धुंधली या फजी न हो?


54

वहाँ बहुत सारे सवाल हैं कि एक पीडीएफ फाइल को एक PNG छवि में कैसे बदला जाए, लेकिन मैं एक अच्छी तेज PNG फाइल लेना चाहता हूँ और मूल रूप से इसे लपेटता हूँ या इसे धुंधली दिखने के बिना PDF फ़ाइल में एम्बेड करता हूँ। फजी।

मुझे लगता है कि मैं एक साधारण रूपांतरण कर सकता हूं

convert sample.png sample.pdf

मैंने गहराई सेट करने के लिए बहुत सारे स्विच भी आज़माए हैं, और गुणवत्ता सेटिंग भी:

convert -quality 100 sample.png sample.pdf

हालाँकि PDF अभी भी धुंधली / धुंधली दिख रही है।

यहाँ एक नमूना छवि है:

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

पींग के रूप में यह कुरकुरा और साफ है। जब मैं इसे पीडीएफ में परिवर्तित करता हूं, तब भी समान आकार में यह धुंधला दिखता है:

चित्र 4. पीएनजी http://img803.imageshack.us/img803/9969/picture4.png

मैं पीएनजी को उच्च गुणवत्ता में पीडीएफ में कैसे बदल सकता हूं?


मुझे आशा है कि आपको अपने प्रश्न का एक अच्छा उत्तर मिल जाएगा, लेकिन मुझे लगता है कि यह पीडीएफ की एक दी गई संपत्ति है जो जेपीजी प्रारूप में छवियों को संग्रहीत करने के लिए है। पीएनजी, जैसे कि आप हमें दिखाते हैं, जेपीजी की तुलना में बेहतर गुणवत्ता है।
जिप्पी

1
@cwd: क्या आपने इसे एक। नेट फ़ाइल में डालने की कोशिश की थी, और फिर पीडीएफ उत्पन्न करें? साथ \usepackage[pdftex, final]{graphicx}और \includegraphics[width=516px]{calendar.png}, उदाहरण के लिए।
इमानुएल बर्ग

2
@ जिप्पी: नहीं, पीडीएफ नुकसान रहित रूप से बिटमैप स्टोर कर सकता है । लिंक प्रारूपों के बजाय संपीड़न एल्गोरिदम की एक सूची देता है, क्योंकि एक पीडीएफ के अंदर बिटमैप डेटा को सीधे जेपीईजी या टीआईएफएफ के रूप में नहीं निकाला और देखा जा सकता है, लेकिन आप यह कहते हुए बहुत गलत नहीं कहेंगे कि पीडीएफ चित्र या तो जेपीईजी हैं (हानिपूर्ण ), जेपीईजी 2000 (हानिपूर्ण) या कई टीआईएफएफ वेरिएंट (दोषरहित) में से कोई भी। क्या है , सच यह है कि किसी दिए गए पीडीएफ डिस्टिलर डीसीटी (उर्फ जेपीईजी) रूप में अनुवाद करने बिटमैप्स के लिए डिफ़ॉल्ट सकता है, और बजाय एक दोषरहित फार्म का उपयोग करने के लिए कहा जा करने के लिए है।
वॉरेन यंग

@cwd क्या आपने कुछ जवाब स्वीकार करने के बारे में सोचा है? मुझे लगता है कि user32208 का उत्तर अच्छा है unix.stackexchange.com/a/64495/16920
Léo Léopold Hertz

जवाबों:


34

-densityविकल्प का उपयोग करके देखें । डिफ़ॉल्ट रिज़ॉल्यूशन 72 डॉट प्रति इंच है। तो कुछ ऐसा प्रयास करें -density 300

संदर्भ के -densityलिए ImageMagick कमांड-लाइन विकल्प प्रलेखन देखें।


घनत्व निश्चित रूप से महत्वपूर्ण लगता है। स्केल और घनत्व विपरीत रूप से संबंधित प्रतीत होते हैं, इसलिए मैं उपस्थिति और फ़ाइल आकार दोनों के संदर्भ में एक इष्टतम परिणाम प्राप्त करने के लिए दोनों सेटिंग्स के साथ खेल रहा हूं ... यदि कोई सेट सूत्र है, तो मुझे लगता है कि मुझे पता था।
ब्रायन जेड

सबसे अच्छा घनत्व विकल्प कैसे ढूंढें? with density 300किसी भी उदाहरण चित्र के साथ डेटा कितना खो गया है? मुझे लगता है कि परिणाम इनपुट पर निर्भर करता है। इसके बारे में एक नया सूत्र यहाँ unix.stackexchange.com/q/292025/16920
Léo Léopold Hertz

यह मेरे लिए गुणवत्ता को बिल्कुल नहीं बदलता है।
गिलाउल शेवेलियर

19

इससे अच्छा पीडीएफ आउटपुट प्राप्त करने के लिए बहुत जटिल हो सकता है convertimg2pdfइसके बजाय कोशिश करें । रीडमी से:

JPEG और JPEG2000 फ़ाइलों को अनावश्यक रूप से पुन: एन्कोडिंग के बिना छवियों के पीडीएफ में दोषरहित रूपांतरण। इस प्रकार, गुणवत्ता का कोई नुकसान नहीं और कोई अनावश्यक बड़ी आउटपुट फ़ाइल नहीं।

स्पष्ट करने के लिए: पीडीएफ दोषरहित जेपीईजी 2000 छवियों को एम्बेड कर सकता है (और अधिकांश पाठक उनका समर्थन करने के लिए दिखाई देते हैं )। तो यह रूपांतरण पूरी तरह से दोषरहित है:

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

(मान लें कि JP2 प्रतिनिधि उपलब्ध है: पाठ्यक्रम की जाँच करें identify -list format | grep JP2।)


4
यह IMHO का सबसे अच्छा उत्तर है, लेकिन आपको अपनी बात को बेहतर तरीके से समझाना चाहिए, यानी पीडीएफ दोषरहित JPEG 2000 छवियों को एम्बेड कर सकता है। तो ओपी के लिए पूर्ण आदेश की तरह कुछ होगा: convert sample.png -quality 0 sample.jp2; img2pdf -o sample.pdf sample.jp2। (जेपी 2 प्रतिनिधि मान लें कि पाठ्यक्रम उपलब्ध है: चेक identify -list format | grep JP2।)
नेमो

1
यदि आप उबंटू 14 पर मानक रिपॉजिटरी convertसे चिपकना चाहते हैं , तो टिफ और फिर tiff2pdf
कैमिली गौडेय्यून

यह एक शानदार जवाब है, आपका बहुत-बहुत धन्यवाद।
कंबोमेयर शादारिव

@ ब्रायन-जेड आपके उत्तर में , क्या आप तर्क की व्याख्या कर सकते हैं -quality 0?
सेबमा

सीबीएमए, @ नीमो ने उस कमांड को जोड़ा, लेकिन मैं सोच रहा हूं कि शायद -quality 100इसके बजाय होना चाहिए ?
ब्रायन जेड

14

मैं लगभग निश्चित हूं कि आप पीडीएफ में गुणवत्ता के नुकसान के रूप में जो अनुभव करते हैं, वह आपके पीडीएफ दर्शक के एंटी- एलिंग फीचर का एक प्रभाव है ।

यदि आप evinceपीडीएफ को देखने के लिए उपयोग करते हैं, तो आप एंटी-अलियासिंग सुविधा को एक निश्चित ज़ूम (मेरे त्वरित परीक्षण में 300%) पर स्वचालित रूप से बंद देख सकते हैं। जब आप ज़ूम इन करते रहते हैं, तो आप इसे स्पष्ट रूप से देख सकते हैं - आप देखेंगे कि कुछ बिंदु पर, पिक्सेल अचानक स्पष्ट रूप से दिखाई देने लगते हैं। यही वह बिंदु है जब सटीक छवि निरीक्षण की अनुमति देने के लिए एंटी-अलियासिंग को बंद कर दिया जाना चाहिए।


हम्म - यह समझ में आता है, लेकिन मुझे लगता है कि मैं उम्मीद कर रहा था कि किसी तरह छवि और "प्रारंभिक दृश्य" को 100% पर सेट किया जा सके ताकि यह कुरकुरा दिखे।
cwd

1
@cwd इमेज स्मूथिंग के वास्तविक कारण के साथ ज़ूम (फ़ाइल की जांच करने का एक तरीका) की गलती न करें : एंटी-अलियासिंग । छवि ठीक से संग्रहीत है। यह पीडीएफ दर्शक है जो आपको बेवकूफ बनाता है। लेकिन यह अन्य तरीकों से भी हो सकता है - अगर आप कुछ अन्य देखने के अनुप्रयोग ले लेंगे या अपनी सेटिंग्स बदल देंगे। तब आप एक पीडीएफ फाइल में एक तेज छवि और एक छवि दर्शक में एक चिकनी पीएनजी फ़ाइल देख सकते हैं।
रोज़ज़ेट्रिएवेज़ज़

3

ऊपर ब्रायन जेड ने नीचे प्रदान किया है, जो सही, पूरी तरह से प्रतिवर्ती और दोषरहित है (परिवर्तित कदम को वास्तव में दोषरहित है, जो मुझे लगता है कि यह है या कम से कम होना चाहिए) पीएनजी के एक पीडीएफ में डालने का तरीका। पीडीएफ संरचना / पाठकों (मुझे लगता है) के अनुरूप होने के लिए आपको पीएनजी से दोषरहित jp2 में बदलना आवश्यक है।

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

हालाँकि यह ध्यान देने योग्य है कि आप .png फाइलों को सीधे img2pdf पर सप्लाई कर सकते हैं जैसे:

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

यह सबसे छोटी पीडीएफ़ फ़ाइल का उत्पादन करेगा, और पीएनजी के कच्चे हेक्स को पीडीएफ के भीतर वस्तुओं में दोषरहित रूप से डालेगा *।

* खामी, क्या यह प्रक्रिया jp2 का उपयोग करने के विपरीत प्रतिवर्ती नहीं है। शीर्ष लेख / पाद लेख और chunk शीर्ष लेख / पाद लेख डेटा को छीन लिया गया है (जो वास्तव में फ़ाइलों को और भी छोटा कर देता है!) केवल कच्चे चित्र डेटा (पीडीएफ प्रारूप में एकीकृत किया गया मेटाडेटा) को छोड़कर कच्चे चित्र से डाला जाता है। संभवतया कच्चे पीएनजी प्रदर्शित करने के लिए पीडीएफ को "हैक" करना जो कंटेनर के साथ तकनीकी रूप से गैर-अनुपालन है। यह फ़ायरफ़ॉक्स में ठीक प्रदर्शित करता है, और सभी आधुनिक पाठकों में ठीक प्रदर्शित हो सकता है, लेकिन अगर पीएनजी कंटेनर के साथ गैर-अनुरूप है, तो सख्त पाठक कच्चे पीएनजी डेटा को प्रस्तुत नहीं कर सकते हैं (क्योंकि उन्हें इसकी उम्मीद नहीं करनी चाहिए / इसे सही ढंग से संसाधित करना चाहिए)।

यहां आप एक बेहद कच्ची बैश स्क्रिप्ट पा सकते हैं, जो पीडीएफ में इनपुट के लिए इस्तेमाल होने वाले हैश से मेल खाती है के साथ png फ़ाइलों को निकालने और पुनर्निर्माण करने के लिए मेरे लिए काम किया। https://github.com/jack4455667788/RebuildRawPNGExtractedFromPDF


2

पीडीएफ एक वेक्टर प्रारूप है (यानी, फ़ाइल में रेखाओं का विवरण है)। यदि आप पीडीएफ को उड़ाते हैं, तो यह अभी भी तेज लाइनें है; जेपीजी और पीएनजी पिक्सेलेशन दिखाते हैं।

(ठीक है, ठीक है, मैंने झूठ बोला। एक पीडीएफ भी एक रेखापुंज हो सकता है)।


2

मुझे लगता है कि png-to-pdf -densityपैरामीटर के लिए बड़े के बजाय छोटा होना चाहिए। आप कुछ इस तरह की कोशिश कर सकते हैंconvert -quality 100 -density 50


3
नहीं उच्च घनत्व निश्चित रूप से बेहतर है, बस एक परीक्षण किया, बहुत दृश्यमान पिक्सल के 300 में 50 परिणाम, 300 अच्छा और कुरकुरा लग रही है।
शुनहुसैन

यह मुझे भ्रमित कर रहा है, लेकिन मुझे लगता है कि कम रिज़ॉल्यूशन के साथ आउटपुट में घनत्व अधिक होता है। इसका मतलब है कि यदि आउटपुट फ़र्ज़ी है (मूल प्रश्न में उदाहरण की तरह अति-भिन्न), तो निम्न घनत्व वह है जो आप चाहते हैं। लेकिन अगर एक पीडीएफ पिक्सेल है तो वास्तव में आपको उच्च घनत्व के साथ परिवर्तित करने की आवश्यकता है ।
ब्रायन जेड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.