पहले मुझे लगता है कि प्रश्न करने के लिए नेतृत्व की स्थिति/आवश्यकताओं को समझाने के लिए करना चाहते हैं:शुद्ध जावा विकल्प
हमारी वेब आवेदन हम सीएमवाइके छवियों का समर्थन नहीं कर सकते हैं (JPEG) में आईई के बाद से 8 और नीचे उन्हें प्रदर्शित नहीं कर सकते हैं। इस प्रकार हमें यह पता लगाने की आवश्यकता है कि जब कोई ऐसी छवि अपलोड करना चाहता है और उसे अस्वीकार कर देता है।
दुर्भाग्यवश, जावा का इमेजियो उन छवियों को नहीं पढ़ेगा या मुझे पता लगाया गया रंग स्थान प्राप्त करने में सक्षम नहीं होगा। डीबगिंग से ऐसा लगता है कि JPEGImageReader
आंतरिक रूप से कलर स्पेस कोड 11 प्राप्त करता है (जिसका मतलब JCS_YCCK
होगा) लेकिन मैं सुरक्षित रूप से उस जानकारी तक नहीं पहुंच सकता।
छवि प्रकारों के लिए पाठक से पूछताछ करते समय मुझे सीएमवाईके के लिए कुछ भी नहीं मिलता है, इसलिए मैं no image types = unsupported image
मान सकता हूं।
मैंने स्रोत सीएमवाईके छवि को एक इमेजिंग टूल का उपयोग करके आरजीबी में परिवर्तित करने के लिए यह जांचने के लिए परिवर्तित किया कि यह तब पठनीय होगा (मैंने संदेश प्राप्त करते समय व्यवस्थापक के चरणों को अनुकरण करने की कोशिश की "कोई सीएमवाईके समर्थित नहीं है")। हालांकि, JPEGImageReader
उस छवि को नहीं पढ़ेगा, क्योंकि यह मानता है (स्रोत में टिप्पणी!) 3-घटक आरजीबी रंग स्थान लेकिन छवि शीर्षलेख 4 घटक (शायद आरजीबीए या एआरबीबी) रिपोर्ट करता है और इस प्रकार IllegalArgumentException
फेंक दिया जाता है।
इस प्रकार, छविियो एक विकल्प नहीं है क्योंकि मैं किसी छवि के रंग स्थान को विश्वसनीय रूप से प्राप्त नहीं कर सकता हूं और मैं व्यवस्थापक को यह नहीं बता सकता कि अन्यथा ठीक छवि (इसे ब्राउज़र द्वारा प्रदर्शित किया जा सकता है) स्वीकार नहीं किया जाएगा कुछ आंतरिक त्रुटि के कारण।
यह मैं नेतृत्व जय ImageIO जिसका CLibJPEGImageReader
एक उत्कृष्ट काम करता है और सही ढंग से मेरे सारे परीक्षण छवियों पढ़ता कोशिश करने के लिए।
हालांकि, चूंकि हम अपने आवेदन को जेबॉस में तैनात कर रहे हैं जो अन्य अनुप्रयोगों को भी होस्ट कर सकता है, हम उन्हें यथासंभव अलग रखना चाहते हैं। AFAIK, मुझे जेईई छवि को जेआरई में स्थापित करने की आवश्यकता होगी या अन्यथा देशी libs उन्हें उपयोग करने के लिए उपलब्ध कराएंगे, और इस प्रकार अन्य अनुप्रयोगों को भी उनके पास पहुंच मिल सकती है, जिससे दुष्प्रभाव हो सकते हैं (कम से कम हम चाहते थे यह सुनिश्चित करने के लिए बहुत कुछ परीक्षण करना कि मामला नहीं है)।
यह प्रश्न के लिए स्पष्टीकरण है, और यहां यह फिर से आता है: क्या जैई इमेजियो के लिए कोई शुद्ध जावा विकल्प है जो विश्वसनीय रूप से सीएमवाईके छवियों का पता लगाता है और संभवतः परिवर्तित करता है?
अग्रिम धन्यवाद,
थॉमस
मैंने जेएआई और सीएमवाईके जेपीईजी छवियों के साथ एक ही समस्या को मारा। क्या आप पहले से ही उत्पादन में उस दृष्टिकोण का उपयोग करते हैं? आपका अनुभव कैसा है? मुझे लगता है कि आप 'Sanselan.getImageInfo (...) का उपयोग करते हैं। GetColorType() == ImageInfo.COLOR_TYPE_CMYK' ([ImageInfo] (http://commons.apache.org/sanselan/api-release/org/apache/sanselan /ImageInfo.html)) यह जांचने के लिए कि क्या यह एक सीएमवाईके छवि है, है ना? –
@bene हां, हम पहली बार जांच कर रहे हैं कि संसद को आईसीसी प्रोफाइल मिला है और यदि ऐसा है तो इसका रंग स्थान टाइप करें, लेकिन यदि यह विफल हो जाता है तो हम 'ImageInfo.getColorType()' का उपयोग करते हैं। हम इसे उत्पादन में उपयोग कर रहे हैं और अब तक कोई समस्या नहीं है, हालांकि, मुझे यह स्वीकार करना होगा कि वर्तमान में हम कई छवियों को संभाल नहीं रहे हैं। भविष्य में हमारे पास अपना खुद का मीडिया डेटाबेस होगा जो हजारों छवियों को संभालेगा और फिर उस दृष्टिकोण के उत्पादन की तैयारी पर हमें और अधिक विश्वसनीय जानकारी होगी। सिर्फ एक तरफ ध्यान दें: सीएमवाईके टिफ्स को परिवर्तित करने से कुछ उल्लेखनीय टिनटिंग पैदा होती है और हमने अभी तक इससे छुटकारा पाने का प्रबंधन नहीं किया है। – Thomas
आज मैंने एक ऐसी छवि हिट की जहां सांसेलन के आईसीसीप्रोफाइल में कलरस्पेस टाइप सीएमवाईके है जबकि इमेजइन्फो का कलरटाइप आरजीबी है। रंग अंतरिक्ष वास्तव में आरजीबी है। आश्चर्य है कि अगर आपको एक ही समस्या है। –