Изменить обои для рабочего стола с помощью файла JPEG - PullRequest
4 голосов
/ 22 января 2010

Я пытаюсь написать простую программу для смены обоев рабочего стола. Я использую загруженный файл 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 ]

2 голосов
/ 22 января 2010

По какой-то причине я не смог заставить Клона работать. Я смог заставить его работать методом проб и ошибок, используя следующий код:

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);
    }
}
0 голосов
/ 22 января 2010

Используйте метод Bitmap.Clone() и укажите желаемый формат пикселей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...