微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何创建图像并将其保存到WPF中的文件

如何解决如何创建图像并将其保存到WPF中的文件

| 我想创建一个尺寸为100x100的新空白图像。 将其绘制为红色,然后将图像另存为\'test.png \'。 我可以访问/更改创建的图像的像素值。 我如何在WPF中做到这一点。     

解决方法

您可以为此使用“ 0”,然后可以使用“ 1”对图像进行编码并保存。
var bitmap = new WriteableBitmap(100,100,96,PixelFormats.Pbgra32,null);
var rect = new Int32Rect(0,100);
var channelCount = 4;
var pixels = new byte[100 * 100 * channelCount];
for (int i = 0; i < 100 * 100 * channelCount; i+=channelCount)
{
    pixels[i + 2] = (byte)255; // Set red channel
    pixels[i + 3] = (byte)255; // Set alpha channel
}
bitmap.WritePixels(rect,pixels,channelCount * 100,0);

var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmap));
using (var stream = new FileStream(@\"C:\\Users\\Public\\Test.png\",FileMode.Create))
{
    encoder.Save(stream);
}
    ,如果您想使用Shapes可以这样做
            var rtb = new RenderTargetBitmap(100,PixelFormats.Pbgra32);

        var rectangle = new Rectangle();

        rectangle.BeginInit();
        rectangle.Height = 100;
        rectangle.Width = 100;
        rectangle.Stroke = Brushes.Red;
        rectangle.Fill = Brushes.Red;
        rectangle.StrokeThickness = 1.0;
        rectangle.Margin = new Thickness(0,0);
        rectangle.EndInit();


        rectangle.Arrange(new Rect(new Size(100,100)));
        rectangle.UpdateLayout();

        rtb.Render(rectangle);

        var png = new PngBitmapEncoder();
        png.Frames.Add(BitmapFrame.Create(rtb));
        using (Stream fs = File.Create(\"test.png\"))
        {
            png.Save(fs);
        }
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。