यहां मेरा प्रश्न है। थोड़ा सा स्पष्टीकरण देने के साथ मेरे साथ भालू:बाइट [] ushort []
मैं बफर छवि को बफर में पढ़ रहा हूं; मेरे टिफ के प्रत्येक पिक्सेल को एक यूहॉर्ट (16 बिट्स डेटा, गैर-नकारात्मक) द्वारा दर्शाया जाता है।
मेरी छवि का आकार 64 * 64 = 4096 है। जब मेरा टिफ़ बफर में लोड होता है, तो बफर की लंबाई 8192 (4096 जितनी दोगुनी होती है) होती है। मुझे लगता है कि ऐसा इसलिए है क्योंकि मेरे बफर में, कंप्यूटर एक पिक्सेल मान को स्टोर करने के लिए 2 बाइट्स का उपयोग करता है।
मैं किसी भी विशेष पिक्सेल के लिए मूल्य प्राप्त करना चाहता हूं, इस मामले में क्या मुझे हर 2 बाइट्स को 1 ushort में जोड़ना चाहिए?
उदाहरण के लिए: 00000000 11111111 -> 0000000011111111?
public static void LoadTIFF(string fileName, int pxlIdx, ref int pxlValue)
{
using (Tiff image = Tiff.Open(fileName, "r"))
{
if (image == null)
return;
FieldValue[] value = image.GetField(TiffTag.IMAGEWIDTH);
int width = value[0].ToInt();
byte[] buffer = new byte[image.StripSize()];
for (int strip = 0; strip < image.NumberOfStrips(); strip++)
image.ReadEncodedStrip(strip, buffer, 0, -1);
// do conversion here:
//ushort bufferHex = BitConverter.ToUInt16(buffer, 0);
image.Close();
}
}
मैं कैसे पढ़ा करते बाइट [] सुनिश्चित करने के लिए है कि मैं 16 बिट ushort पिक्सेल मूल्य प्राप्त कर सकते हैं बफ़र:
यहाँ मेरी कोड है?
धन्यवाद
हाँ, मुझे लगता है कि मुझे पिक्सेल चाहिए जो मुझे चाहिए। बहुत धन्यवाद! –
हालांकि ऑफसेट 2 गुणा का गुणा करता है, और वाई वास्तव में (वाई -1) है, और एक्स के लिए समान है। अच्छी तरह से 0 आधारित या 1 आधारित सूचकांक के आधार पर। –