使用Jpeg文件更改桌面墙纸

时间:2010-01-22 18:25:58

标签: c# windows

我正在尝试编写一个简单的程序来更改我的桌面壁纸。 我正在使用下载的jpeg文件,我想在代码中转换它。 问题是位图需要24位才能显示。 我该怎么做呢? 提前谢谢。

public class ChangeWallpaper
{
    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);

    public static void Main()
    {
        Bitmap wallbm = new Bitmap("pic.jpg");
        wallbm.Save("pic.bmp");
        SystemParametersInfo(20, 0, "pic.bmp", 0x01 | 0x02);
    }
}

2 个答案:

答案 0 :(得分:2)

由于某种原因,我无法让Clone工作。 通过使用以下代码,我能够通过反复试验使其工作:

public class ChangeWallpaper
{
    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);

    public static void Main()
    {
        Bitmap bm = new Bitmap(Image.FromFile("pic.jpg"));
        bm.Save("pic.bmp", ImageFormat.Bmp);
        SystemParametersInfo(20, 0, "pic.bmp", 0x01 | 0x02);
    }
}

答案 1 :(得分:0)

使用Bitmap.Clone()方法并指定所需的像素格式。