.NET में कई पृष्ठों के TIFF में छवियों को कैसे जोड़ें
जब भी मुझे स्कैन, रिसेप्शन या डोक का एक बड़ा बैच संग्रहीत करने या साझा करने की आवश्यकता होती है, तो बहु-पृष्ठ टीआईएफ अभी भी राजा है - विशेष रूप से अनुपालन के लिए या पुराने स्कूल के कार्यालय में चीजों को वितरित करना।
क्यों Multi-Page TIFF?
पीडीएफ हर जगह हैं, लेकिन बहुत सारे विरासत प्रणालियों या दस्तावेज़ कार्यप्रवाह हैं मांग TIFFs (विशेष रूप से चिकित्सा या कानूनी रिकॉर्ड के लिए) आप एक फ़ाइल चाहते हैं, सभी पृष्ठों के अंदर, कोई फूस नहीं है।
मेरे चलने का समाधान
मैं एक फ़ोल्डर में अपने सभी स्रोत छवियों (जेपीजी, पीएनजी और यहां तक कि पुराने बीएमपी) को फेंक देता हूं, इस सी # स्क्रिप्ट को चलाता हूं और एक साफ, बहु-पृष्ठ टीआईएफ को बाहर करता हूं. यह हर बार काम करता है-और मैं इसे स्वचालित या अनुकूलित कर सकता हूं यदि आवश्यक हो।
Prerequisites
- Visual Studio 2019+ (या केवल .NET CLI)
- .NET 6.0+ (या .Net Framework 4.6.2+)
- .NET के लिए Aspose.Imaging (NuGet जीवन को आसान बनाता है)
- मिश्रण करने के लिए छवियों का एक फ़ोल्डर
PM> Install-Package Aspose.Imaging
यहाँ है कैसे मैं बहु-पृष्ठ TIFF बनाने के लिए
चरण 1: सभी चित्रों को इकट्ठा करें
मैं सिर्फ अपनी सभी तस्वीरें लेता हूं ./input
फ़ोल्डर :
string[] files = Directory.GetFiles("./input", "*.jpg"); // tweak pattern for PNG, BMP, etc.
चरण 2: छवियों को लोड करें और TIFF निर्यात सेट करें
var images = files.Select(f => Image.Load(f)).ToList();
var tiffOptions = new Aspose.Imaging.ImageOptions.TiffOptions(Aspose.Imaging.FileFormats.Tiff.Enums.TiffExpectedFormat.Default);
tiffOptions.Compression = Aspose.Imaging.FileFormats.Tiff.Enums.TiffCompressions.CcittFax4; // good for scans; use Lzw or None for color
चरण 3: एक ही TIFF में सभी पृष्ठों को सहेजें
string outFile = "./output/merged_multipage.tiff";
using (var tiffImage = Aspose.Imaging.Image.Create(tiffOptions, images[0].Width, images[0].Height, false))
{
for (int i = 0; i < images.Count; i++)
{
var srcImg = images[i];
// For first page, just draw
if (i == 0)
{
var g = new Aspose.Imaging.Graphics(tiffImage);
g.DrawImage(srcImg, 0, 0, srcImg.Width, srcImg.Height);
}
else
{
// Add a new page for each image
tiffImage.AddPage(srcImg);
}
}
tiffImage.Save(outFile);
}
images.ForEach(img => img.Dispose());
चरण 4: स्वास्थ्य जांच और समस्या निवारण
- IrfanView, Photoshop, या यहां तक कि Windows Photos में TIFF खोलें. अगर यह अच्छा दिखता है, तो आप सेट कर रहे हैं.
- यदि आप काले / सफेद पृष्ठ प्राप्त करते हैं: छवि प्रारूपों और रंग की गहराई की जांच करें. TIFF कुछ रंग प्रकार के बारे में सूक्ष्म है.
चरण 5: बोनस ट्वीक्स
- Change
Compression
के लिएLzw
रंग डोक के लिए याNone
नुकसान के लिए - बैच नौकरियों के लिए, ऊपर दिए गए कोड को कई फ़ोल्डरों में एक लूप में डालें
- यदि आपका मशीन इसे संभाल सकता है तो समानांतर करें - बस एक ही समय में बहुत सारे फ़ाइलों को न खोलें!
कभी-कभी मुझे क्या परेशान करता है
- फ़ाइल ऑर्डर: सुनिश्चित करें कि आपके फ़ाइलें नामित या वर्गीकृत हैं जैसा आप चाहते हैं कि वे दिखाई दें
- Weird फ़ॉर्मेट: कुछ दुर्लभ प्रारूपों को पहले PNG/JPG में रूपांतरण की आवश्यकता होती है
- बड़े फ़ाइलें: बड़े बैट्स या उच्च रिज़ पृष्ठ = बड़ी स्मृति; यदि आवश्यक हो तो छोटे टुकड़ों में प्रसंस्करण
प्रो टिप्स
- मैं अपनी स्रोत छवियों को सुरक्षित रखता हूं - एक बार जब आप मिश्रण करते हैं, तो आप उन्हें आसानी से “एक-बैक” नहीं कर सकते हैं
- अनुपालन के लिए, सामान्य संपीड़न (Lzw, फ़ैक्स4) का पालन करें
- अपने आउटपुट टीआईएफ (डेटा, परियोजना, आदि) के लिए स्पष्ट नाम का उपयोग करें।
FAQ
Q: क्या मैं रंग और ग्रे स्केल छवियों को जोड़ सकता हूं?A: हाँ, लेकिन आउटपुट की जाँच करें-TIFF अजीब हो सकते हैं यदि पृष्ठों को नाटकीय रूप से अलग किया जाता है
**Q: मैं इसे प्रत्येक अपलोड के लिए कैसे स्वचालित करता हूं?**ए: इस तार्किक को एक वॉटर या योजनाबद्ध नौकरी में डालें – .NET कार्यों या विंडोज सेवाओं के साथ आसान
**Q: OCR या खोज योग्य TIFF के बारे में क्या?**A: आपको एक OCR चरण की आवश्यकता होगी—Aspose.OCR या इसी तरह—अगर आप खोज योग्य पाठ की जरूरत है तो मिश्रण से पहले / बाद में
Conclusion
.NET और एक सरल स्क्रिप्ट के लिए Aspose.Imaging के साथ, आप मिनटों में संतोषजनक फ़ोल्डरों से अनुकूल, संग्रहीत और साझा करने योग्य TIFFs तक जा सकते हैं. इस दृष्टिकोण ने मुझे घंटों बचाया है-और मैं इसे हर बार भरोसा करता हूं.
See .NET API संदर्भ के लिए Aspose.Imaging अधिक TIFF, बैच और बहु-पृष्ठ टिप्स के लिए।