经过在Google上的大量研究,我没有找到在C#中将Wbmp图像转换为Png格式的示例。我已经从互联网上下载了一些Wbmp图像,并使用二进制编辑器查看它们。
有人有算法可以帮助我实现这一点,或者任何代码都可以帮助。
以下是我目前所知道的事情:
其他代码:
并且
该应用程序将IMG_0001.wbmp、IMG_0002.wbmp和IMG_0003.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最简单的方法是将实体视为base-128。
查看我更新的示例代码。
我正在尝试创建一个空Bitmap对象,并将其宽度和高度设置为我们在(3)中确定的值
对于每个数据位,将尝试在所创建的Bitmap对象上执行SetPixel操作。
当WBMP宽度不是8的倍数时填充0。
使用Save()方法保存Bitmap。
应用程序的用法示例。假定该应用程序名为Wbmp2Png。在命令行中:
Wbmp2Png IMG_0001.wbmp IMG_0002.wbmp IMG_0003.wbmp
该应用程序将IMG_0001.wbmp、IMG_0002.wbmp和IMG_0003.wbmp转换为PNG文件。