मैं JPEG फ़ाइल लोड और सब काले और सफेद पिक्सलनेट Bitmap.Load विधि विभिन्न कंप्यूटरों पर अलग अलग परिणाम उपज
सी # कोड छवि से हटाने का प्रयास: मैं खोजने की कोशिश उसके बाद
...
m_SrcImage = new Bitmap(imagePath);
Rectangle r = new Rectangle(0, 0, m_SrcImage.Width, m_SrcImage.Height);
BitmapData bd = m_SrcImage.LockBits(r, ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
//Load Colors
int[] colours = new int[m_SrcImage.Width * m_SrcImage.Height];
Marshal.Copy(bd.Scan0, colours, 0, colours.Length);
m_SrcImage.UnlockBits(bd);
int len = colours.Length;
List<Color> result = new List<Color>(len);
for (int i = 0; i < len; ++i)
{
uint w = ((uint)colours[i]) & 0x00FFFFFF; //Delete alpha-channel
if (w != 0x00000000 && w != 0x00FFFFFF) //Check pixel is not black or white
{
w |= 0xFF000000; //Return alpha channel
result.Add(Color.FromArgb((int)w));
}
}
...
इस कोड द्वारा सूची में अद्वितीय रंग
result.Sort((a, b) =>
{
return a.R != b.R ? a.R - b.R :
a.G != b.G ? a.G - b.G :
a.B != b.B ? a.B - b.B :
0;
});
List<Color> uniqueColors = new List<Color>(result.Count);
Color rgbTemp = result[0];
for (int i = 0; i < len; ++i)
{
if (rgbTemp == result[i])
{
continue;
}
uniqueColors.Add(rgbTemp);
rgbTemp = result[i];
}
uniqueColors.Add(rgbTemp);
और यह कोड एक ही छवि पर विभिन्न मशीनों पर अलग-अलग परिणाम उत्पन्न करता है!
उदाहरण के लिए, this image पर यह निर्माण करता है:
- 43198 अद्वितीय रंग XP SP3 पर नेट संस्करण के साथ नेट संस्करण के साथ Win7 अंतिम पर 4
- 43,168 अद्वितीय रंग 4,5
न्यूनतम परीक्षण परियोजना आप download here कर सकते हैं। यह सिर्फ चयनित छवि खुलता है और अद्वितीय रंगों के साथ txt-file उत्पन्न करता है।
एक और तथ्य। कुछ पिक्सेल अलग-अलग मशीनों पर अलग-अलग पढ़े जाते हैं। मैं txt-files को नोटपैड ++ के साथ तुलना करता हूं और यह दिखाता है कि कुछ पिक्सेल में अलग-अलग आरजीबी घटक होते हैं। प्रत्येक घटक के लिए अंतर 1 है, उदा।
- Win7 पिक्सेल: 255 200 100
- WinXP पिक्सेल: 254 199 99
मैं इस पोस्ट
stackoverflow.com/questions/2419598/why-might-different- पढ़ लिया है कंप्यूटर-गणना-अलग-अंकगणितीय-परिणाम-में-vb-net
(क्षमा करें, मेरे पास सामान्य लिंक के लिए पर्याप्त राइटिंग नहीं है)।
... लेकिन जानकारी को ठीक करने के बारे में जानकारी नहीं थी।
परियोजना वीएस 2015 कम्युनिटी संस्करण में ओएस विंडोज 7 के साथ मशीन पर .NET 4 क्लाइंट प्रोफ़ाइल के लिए संकलित की गई थी।
छवियों को अपलोड करने के लिए आपको एक मुफ्त अपलोड सेवा चुननी चाहिए जिसके लिए हमें – TaW
@TaW मूव छवि को imgur.com पर लॉग इन करने की आवश्यकता नहीं है और परीक्षण परियोजना को github –
धन्यवाद पर ले जाएं। हालांकि मुझे लगता है कि लास का जवाब सही है: जेपीईजी पूर्ण सटीकता के साथ छवि को पुन: उत्पन्न करने के लिए नहीं है। यदि आपको वास्तव में इसकी ज़रूरत है तो पीएनजी में जाएं! – TaW