Belki bu çözmek için çok kolay bir sorundur, ancak henüz mükemmel bir çözüm bulamadım. C# ile ico bir png dönüştürmek için çalışıyor ve çeşit olarak aşağıda çalışan bir solüsyon verir soru converting .PNG to .ICO in C/C# bulundu ediyorum:Yüksek kaliteli dönüştürme ico
: Ben biraz bu yaklaşımı değiştiusing (FileStream stream = File.OpenWrite(@"C:\temp\test.ico"))
{
Bitmap bitmap = (Bitmap)Image.FromFile(@"c:\temp\test.png");
Icon.FromHandle(bitmap.GetHicon()).Save(stream);
}
Kendi proje için
string pngFile = "path/to/pngfile";
using (Bitmap bitmap = new Bitmap(pngFile))
{
using (Icon icon = Icon.FromHandle(bitmap.GetHicon()))
{
using (MemoryStream stream = new MemoryStream())
{
icon.Save(stream);
// something interesting with icon here
}
}
}
Yaşadığım sorun, sonuçta oluşan ico kalitesinin düşük olması, 16x16 boyutuna getirilmesinin ve renk derinliğinin bir kısmını kaybetmesinin, belki de yalnızca 16 renge sahip olduğunu tahmin ediyorum. Daha yüksek kaliteli bir ico dosyasına nasıl dönüştürebilirim?
Png için: https://gist.github.com/darkfall/1656050. “GetHicon” dan daha sağlam bir şeye ihtiyacınız olacağını söyleyebilirim çünkü bu hızlı ve kirli bir yöntemdir ve hiçbir şekilde kayıpsız değildir. – DonBoitnott
@DonBoitnott Lütfen yorumunuzu yanıt olarak gönderin. Senin önerilerinle çalışmayı başardım ve bunun doğru cevap olduğuna inanıyorum. – Bazzz