2012-07-24 12 views
11

कनवर्ट करना मैं एक छवि को Bitmap से एक विंडोज आइकन में बदलने की कोशिश कर रहा हूं। यह कोड है।बिटमैप को आइकन

private void btnCnvrtSave_Click(object sender, EventArgs e) 
{ 
    Bitmap bmp = (Bitmap)picturePanel.BackgroundImage; 
    Bitmap newBmp = new Bitmap(bmp); 
    Bitmap targetBmp = newBmp.Clone(new Rectangle(0, 0, newBmp.Width, newBmp.Height), PixelFormat.Format64bppArgb); 
    IntPtr Hicon = targetBmp.GetHicon(); 
    Icon myIcon = Icon.FromHandle(Hicon); 

    SaveFileDialog sfd = new SaveFileDialog(); 
    sfd.Title = "Save Icon"; 
    sfd.Filter = "Icon|*.ico"; 
    sfd.ShowDialog(); 

    FileStream fileStream = new FileStream(sfd.FileName,FileMode.OpenOrCreate); 
    myIcon.Save(fileStream); 
    fileStream.Flush(); 
    fileStream.Close(); 

    MessageBox.Show("Image is converted successfully!"); 
} 

कोड ठीक काम कर रहा है, लेकिन समस्या यह है, जब मैं एक आइकन परिवर्तित आइकन अपने असली रंग और ढ़ाल खो देता है (छवि में दिखाया गया) के लिए चित्र परिवर्तित। तो, क्या कोई तरीका है जिसके द्वारा मैं छवियों को खोए बिना छवि को परिवर्तित कर सकता हूं?

यह मेरा आइकन जैसा दिखता है।

Before and after converting

+1

कि बुनियादी 4bpp रंग पैलेट तरह दिखता है। मुझे नहीं पता कि यह ऐसा क्यों करता है। –

+0

हैंडल से आइकन बनाने के बारे में कैसे? – danish

+5

पता नहीं कैसे, ठीक है, मैं Google में खोजने की कोशिश करूंगा। अगर आपके पास एक उदाहरण के लिए कोई लिंक है .. कृपया प्रदान करें। धन्यवाद। – kakarott

उत्तर

3

इस के बाद से यह एक आइकन एनकोडर नहीं है नेट के साथ एक ज्ञात समस्या है। संभावित कामकाज के लिए निम्नलिखित देखें।

Create Valid Icon Files

Convert Bitmap to Icon problem

संबंधित मुद्दे