也許這是解決一個非常簡單的問題,但我還沒有找到完美的解決方案呢。 我想轉換一個PNG使用C#來ICO,發現問題converting .PNG to .ICO in C/C#哪種類型的給如下工作方案:PNG轉換到高品質的ICO
using (FileStream stream = File.OpenWrite(@"C:\temp\test.ico"))
{
Bitmap bitmap = (Bitmap)Image.FromFile(@"c:\temp\test.png");
Icon.FromHandle(bitmap.GetHicon()).Save(stream);
}
對於我自己的項目,我也稍微改變了這種做法:
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
}
}
}
,我遇到的問題是,所產生的ICO質量很差,我猜它得到調整爲16×16,失去了它的一些色彩深度,也許現在只有16種顏色?我怎樣才能轉換到更高質量的ico文件?
您可以試試:https://gist.github.com/darkfall/1656050。我可以告訴你,你將需要比'GetHicon'更強大的東西,因爲這是一種快速和骯髒的方法,絕不意味着無損。 – DonBoitnott
@DonBoitnott請發表您的評論作爲答案。我設法讓它與你的建議合作,我相信這是正確的答案。 – Bazzz