Devil7DK Ответов: 1

Сохранить систему.чертеж.изображения как png без переплетения и прозрачности .Чистая


Я разрабатываю приложение для Windows для преобразования изображений для использования в загрузочной анимации android. Изображения для загрузочной анимации должны быть в формате PNG и без чередования или прозрачности.

Как я могу сохранить систему.Рисование.Объект изображения в виде файла формата PNG без чередования или прозрачности в VB / C# .NET....?

Что я уже пробовал:

Я читал это... Класс PngBitmapEncoder (System.Окна.Средства массовой информации.Изображений)[^]

Но не знаю, как использовать этот класс с системой.Рисование.Изображение

1 Ответов

Рейтинг:
2

ben_mcgee

Это, кажется, работает.
Сохраните систему.Рисование.Изображение в поток памяти.
Создайте PngBitmapEncoder и установите нужные параметры.
Добавьте растровый кадр в PngBitmapEncoder из этого потока памяти.
Затем сохраните PNG с помощью PngBitmapEncoder.

Надеюсь, это поможет. К сожалению, я не знаю, как управлять настройками прозрачности.


using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Media.Imaging;

namespace plng
{
    class Program
    {
        static void Main(string[] args)
        {
            Image img = Bitmap.FromFile("foo.bmp");

            using (MemoryStream ms = new MemoryStream())
            {
                img.Save(ms, ImageFormat.Bmp);
                ms.Seek(0, SeekOrigin.Begin);

                PngBitmapEncoder enc = new PngBitmapEncoder();
                enc.Interlace = PngInterlaceOption.Off;
                enc.Frames.Add(BitmapFrame.Create(ms));

                using (FileStream ostream = new FileStream("bar.png", FileMode.Create))
                {
                    enc.Save(ostream);
                }
            }

        }
    }
}