Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 图像到图标转换_C#_Image_Visual Studio 2010_Icons_Windows Xp - Fatal编程技术网

C# 图像到图标转换

C# 图像到图标转换,c#,image,visual-studio-2010,icons,windows-xp,C#,Image,Visual Studio 2010,Icons,Windows Xp,我使用以下代码将图像转换为图标。 这是我的密码 Bitmap Cbitmap=null; try { Cbitmap = new Bitmap("path of local image"); } catch(Exception) { return; } Cbitmap.MakeTransparent(Color.White); System.IntPtr icH = Cbitmap.GetHicon(); Icon ico = Icon.FromHa

我使用以下代码将图像转换为图标。 这是我的密码

Bitmap Cbitmap=null;
  try
  {
  Cbitmap = new Bitmap("path of local image"); 
  }
  catch(Exception)
  {
  return;
  }
  Cbitmap.MakeTransparent(Color.White);
  System.IntPtr icH = Cbitmap.GetHicon();
  Icon ico = Icon.FromHandle(icH);
  Cbitmap.Dispose();
  System.IO.FileStream f = new System.IO.FileStream(Path where to save icon"" + "\\image.ico", System.IO.FileMode.OpenOrCreate);
  ico.Save(f);
   f.close();
  ico.dispose();
现在,该图标已成功转换为图标,但当我尝试在图像查看器中打开它时,它会显示“预览不可用”。

它还说,什么时候尝试在项目中打开它


(image.ico不是图标文件)您的代码很好。它将JPG转换为图标。你原来的JPG的尺寸是多少?如果它们不是标准的图标大小之一,您将得到一个奇怪的行为。如果原始JPG太大,您将看到错误


一些更常见的尺寸是16x16、24x24、32x32、48x48

ico文件只是一个重命名的bmp,你检查过它是否保存为bmp吗?很抱歉,它保存为JPEG。这有关系吗?那么JPEG不能使用上述方法转换为图标吗?@Russ C,ico不是bmp,即使图标中存储的图像的二进制格式与bmp相关。Lucero是正确的。图标对数据使用运行长度编码,但格式不同@Russ C-该知识库文章仅适用于Windows 98和ME。这是一种特殊的重命名情况,Windows会在重命名文件时为您进行转换。