Изменение размера прозрачных изображений в Windows Mobile с помощью C # - PullRequest
1 голос
/ 30 января 2010

Есть ли способ изменить размер прозрачного изображения в Windows Mobile (C #)? Я могу изменить размер изображения, но я теряю прозрачность. Он заменяется белым.

Вот что у меня сейчас

public static void ResizePicture(string imageFileName, Size maxSize)
{
    using (Image src = new Bitmap(imageFileName))
    {
        using (Bitmap dst = new Bitmap(maxSize.Width, maxSize.Height))
        {
            using (Graphics g = Graphics.FromImage(dst))
            {

                ImageAttributes imageAttr = new ImageAttributes();
                g.Clear(Color.Transparent);
                g.DrawImage(src, new Rectangle(0, 0, dst.Width, dst.Height), 0, 0, src.Width, src.Height, GraphicsUnit.Pixel, imageAttr);
            }
            dst.Save(imageFileName, ImageFormat.Png);
        }                
    }
}

Ответы [ 2 ]

1 голос
/ 30 января 2010

Посмотрите на это, как указано в MSDN о настройке цвета прозрачности. Похоже, вам нужно установить SetColorKey, чтобы это работало. См. Также здесь , который объясняет, что вы не можете установить прозрачность (очевидно, противоречащее первой ссылке). Но вы все равно можете отключить Smart Devices Framework (версия для сообщества), найденную в OpenNetCF.org , и использовать его вместо этого для обходного пути прозрачности. Я бы попробовал первую ссылку, прежде чем идти дальше, чтобы посмотреть, работает ли это.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

0 голосов
/ 31 января 2010

CF, на мой взгляд, имеет ошибку. Graphics.Clear with Color.Transparent фактически заполняет изображение белым, а не прозрачным . Обходной путь утомителен. Смотрите ссылку выше.

...