在Google上花了很多时间研究这个问题之后,我找不到在C#中将Wbmp图像转换为Png格式的示例。我从互联网上下载了一些Wbmp图像,并使用二进制编辑器查看它们。如何把Wbmp转换成Png?
有没有人有一个算法,这将有助于我这样做或任何代码也将有所帮助。
事情我知道,到目前为止:
- 第一个字节是类型*(0单色图像)
- 第二个字节被称为“固定头”,并且是0
- 第三个字节是以像素为单位的图像宽度*
- 第四个字节是图像的高度(以像素为单位)*
- 以行为单位排列的数据字节 - 每像素一位: 如果行的长度不能被8整除,该行是填充0到 字节边界
我完全失去了任何帮助将不胜感激
其他一些代码:
using System.Drawing;
using System.IO;
class GetPixel
{
public static void Main(string[] args)
{
foreach (string s in args)
{
if (File.Exists(s))
{
var image = new Bitmap(s);
Color p = image.GetPixel(0, 0);
System.Console.WriteLine("R: {0} G: {1} B: {2}", p.R, p.G, p.B);
}
}
}
}
而且
class ConfigChecker
{
public static void Main()
{
string drink = "Nothing";
try
{
System.Configuration.AppSettingsReader configurationAppSettings
= new System.Configuration.AppSettingsReader();
drink = ((string)(configurationAppSettings.GetValue("Drink", typeof(string))));
}
catch (System.Exception)
{
}
System.Console.WriteLine("Drink: " + drink);
} // Main
} // class ConfigChecker
个流程:
做了调查上WBMP
打开X.wbmp先检查一下细节
工作,你如何找到WBMP文件的宽度和高度(这样你可以稍后编写代码)。请注意,转换长度字节集合(一旦MSB被清除)的最简单方法是将实体视为base-128。
看看我更新的示例代码。
我试图创建一个空的位图对象,其宽度和高度设置为我们在(3)
制定了数据的每一位,会尽量做到位图对象的SetPixel创建。
软垫0时WBMP宽度不使用保存()方法8
保存位图的倍数。
应用程序的用法示例。假定该应用程序被称为Wbmp2Png。在命令行中:
Wbmp2Png IMG_0001.wbmp IMG_0002.wbmp IMG_0003.wbmp
该应用程序转换每个IMG_0001.wbmp,IMG_0002。wbmp和IMG_0003.wbmp转换为PNG文件。
嗨,代码是给出错误,发布你的完整的类,包括“Using.System”等声明。假定该文件名为test.wbmp,其位置是Desktop。 – 2012-08-13 04:23:14
@AmberArroway:更新 – Ria 2012-08-13 04:32:08
看看编辑过的问题 – 2012-08-13 04:39:33