मैं वर्तमान में एक परियोजना पर काम कर रहा हूँ जो मुझे आवश्यकता है सभी टैग और सभी छवि डेटा और युक्त एक फ़ाइल युक्त इन फ़ाइलों से एक TIFF चित्र फिर से संगठित करने के लिए एक फ़ाइल में एक TIFF चित्र विभाजित करने के लिए से सभी टैग निकालें । एकमात्र समस्या यह है कि ऐसा लगता है कि लिबटीएफएफ छवि से सभी टैग को पकड़ने का कोई आसान तरीका नहीं प्रदान करता है। मैंने टैग पुनर्प्राप्त करने के लिए TIFFGetTagListCount और फिर TIFFGetField का उपयोग करने का प्रयास किया है, लेकिन यह केवल टैग का एक छोटा सबसेट देता है। मैंने अपना खुद का संस्करण रोल करना शुरू कर दिया है, लेकिन मैं सिर्फ दोबारा जांच करना चाहता हूं और सुनिश्चित करना चाहता हूं कि मैं कुछ नहीं देख रहा हूं क्योंकि यह एक सुंदर स्पष्ट विशेषता जैसा लगता है जिसे लाइब्रेरी में शामिल किया जाना चाहिए।LibTIFF: एक TIFF चित्र
उत्तर
addingtags.html in the libtiff documentation (वे नजरअंदाज कर दिया रहे हैं डिफ़ॉल्ट रूप से) अमानक टैग से निपटने के बारे में जानकारी शामिल है। क्या यह समस्या हो सकती है?
गैर मानक टैग मुद्दा वास्तव में, के रूप में TIFF_IMAGEWIDTH और TIFF_IMAGELENGTH की तरह साधारण मानक टैग टैग सूची गिनती में शामिल हो रहे हैं नहीं है नहीं कर रहे हैं। यह वास्तव में काफी अजीब है। –
आप छवि के tif_dir
फ़ील्ड का उपयोग कर सकते हैं। यह कम से कम निम्नलिखित क्षेत्रों के साथ एक struct है:
td_customValueCount
'कस्टम' टैग गणना की संख्या में शामिल हैं,td_customValues
td_customValueCount
टैग मूल्यों (0 से अनुक्रमित) की सूची है, और प्रकारTIFFTagValue *
की है ।
तो आप इस तरह कुछ करने के लिए सक्षम होना चाहिए (ऑनलाइन कोड के सही ढंग से, इस पाठ्यक्रम के अपरीक्षित, है!):
for (i=0; i < tiffimage->tif_dir->td_customValueCount; ++i) {
const TIFFFieldInfo *info = tiffimage->tif_dir->td_customValues[i].info;
const char *tagname = info->field_name();
/* process tag */
}
TIFFDirectory Struct Reference देखें। उम्मीद है की वो मदद करदे।
tiffdump उपयोगिता (जो libtiff के साथ जहाजों) इसे पूरा करती है, लेकिन कोड को देखते हुए, ऐसा लगता है कि वे ज्यादातर लाइब्रेरी के आसपास काम कर रहे हैं। टैग जानकारी पढ़ने के लिए वे वास्तव में lseek
और read
पर कॉल करते हैं।
यह भी उपयोगी हो सकता है: http://www.lfd.uci.edu/~gohlke/code/tifffile.py.html
सभी टैग मुद्रण tifffile.py साथ:
from tifffile import TiffFile
for page in TiffFile(path_to_file):
for tag in page.tags.values():
print tag.name, tag.code, tag.dtype, tag.count, tag.value
यहाँ बंद कर देता है है आप सभी टैग स्कैन करने के लिए प्राप्त कर सकते हैं:
#include "LibTIFF/tif_dir.h"
...
TIFFDirectory *td = &tif->tif_dir;
for (int fi = 0, nfi = tif->tif_nfields; nfi > 0; nfi--, fi++) {
const TIFFFieldInfo* fip = tif->tif_fieldinfo[fi];
// test if tag value is set
// (lifted directly form LibTiff _TIFFWriteDirectory)
if(fip->field_bit == FIELD_CUSTOM) {
int ci, is_set = FALSE;
for(ci = 0; ci < td->td_customValueCount; ci++)
is_set |= (td->td_customValues[ci].info == fip);
if(!is_set)
continue;
} else if(!TIFFFieldSet(tif, fip->field_bit))
continue;
// else: process the fip->field_tag
}
ध्यान दें कि आपको यह ध्यान रखना होगा कि कुछ टैग दो बार (लंबे और लघु संस्करण) दिखाई देंगे, लेकिन इनमें से केवल एक मूल्य होगा। उपयोग करने के लिए सही प्रकार शामिल हेडर (TIFFDirectory संरचना) में देखा जा सकता है।
वहाँ भीकैसे टैग को पढ़ने के लिए पर अन्य कैच, लेकिन यह कम से कम आप उन सभी से अधिक पाश कर देगा (मानक वाले)। यदि आप अटक जाते हैं तो पॉइंटर्स के लिए tif_dirinfo.c देखें।
ठीक है क्योंकि 'tif_dir.h' एक आंतरिक शीर्षलेख है (यानी निर्मित लाइब्रेरी द्वारा खुलासा नहीं किया गया है), इसमें सभी प्रकार की समस्याएं जैसे कि परिभाषाएं, लापता निर्भरता इत्यादि शामिल हैं। इस के आसपास कोई अन्य तरीका? –
@ अनीश रामास्वामी मुझे नहीं पता। जैसा कि कहा गया है, यह लिबटीएफएफ स्रोत से रिवर्स-इंजीनियर है। यदि आपको पुनर्वितरण के साथ समस्याएं हैं, तो इसे अलग अनुवाद इकाई या एक छोटी पुस्तकालय में अलग करने का प्रयास करें।गायब होने के लिए के रूप में। - अन्य भी शामिल किया जाना चाहिए। आईआईआरसी, केवल हेडर ही करेंगे, lib से किसी भी .c को संकलित करने की आवश्यकता नहीं है। – user362515
यह बस सुरुचिपूर्ण लगता है। मैं अभी भी शिकार पर हूँ। धन्यवाद! –
- 1. एक TIFF में झलक (libtiff) के साथ एक उप आईएफडी बनाने
- 2. search.h-ऐसा कोई फ़ाइल या निर्देशिका जबकि पर Android-टिफ libtiff पोर्टिंग 4.0.1
- 3. चित्र
- 4. चित्र
- 5. चित्र लेने के बाद चित्र संपादित करें
- 6. चित्र को चित्र में कैसे प्रदर्शित करें?
- 7. पथ चित्र
- 8. प्लॉट एक ही चित्र में अलग DataFrames
- 9. मुझे कैसे पता चलेगा कि चित्र को चित्र बॉक्स
- 10. चित्र चित्र बॉक्स को तेजी से प्रदर्शित करें
- 11. jQuery चित्र पिकर
- 12. GitHub चित्र पथ
- 13. छुपाएं/अदृश्य Matplotlib चित्र
- 14. चित्र बॉक्स मेमोरी
- 15. आईओएस चित्र परिदृश्य
- 16. चित्र काट-छांट पीएचपी
- 17. बनाना इकाई चित्र
- 18. चित्र लोड धीमी
- 19. सभी वेब ब्राउजर में TIFF छवि प्रदर्शित करें
- 20. नेटवर्कएक्स नोड विशेषता चित्र
- 21. एंड्रॉइड घुमाएं चित्र
- 22. फेसबुक प्रोफ़ाइल चित्र बड़े
- 23. सेटिंग खिड़की/चित्र शीर्षक
- 24. LinkedIn उपयोगकर्ता प्रोफ़ाइल चित्र
- 25. वर्ग फेसबुक चित्र
- 26. सी # तर्क 'चित्र' एक तस्वीर होनी चाहिए जिसे एक आइकन
- 27. .NET 2.0 में एक बहु-फ्रेम TIFF छवि प्रारूप छवि को कैसे खोलें?
- 28. UIImagePickerController हमेशा चित्र 640x640 छवि
- 29. चित्र नक्शे अल्फ़ा चैनल द्वारा
- 30. कार्यालय 365 प्रोफ़ाइल अवतार चित्र
जिज्ञासा से बाहर, तो आप इस समस्या का समाधान मिला? –