一尘不染

WPF图片转为字节[]

c#

我正在尝试从转换System.Windows.Controls.Imagebyte[],但我不知道Image类中的哪个方法可以在本场景中提供帮助,顺便说一句,我真的不知道该怎么办,因为在我的LINQ模型中该字段显示为Binary类型,我必须更改如果我想像byte[]类型一样保存它?

我在这里找到了代码,但是没有使用WPF:

Bitmap newBMP = new Bitmap(originalBMP, newWidth, newHeight);
System.IO.MemoryStream stream = new System.IO.MemoryStream();
newBMP.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
PHJProjectPhoto myPhoto = new PHJProjectPhoto {
    ProjectPhoto = stream.ToArray(), // <<--- This will convert your stream to a byte[] 
    OrderDate = DateTime.Now, 
    ProjectPhotoCaption = ProjectPhotoCaptionTextBox.Text,
    ProjectId = selectedProjectId
};

阅读 235

收藏
2020-05-19

共1个答案

一尘不染

真正的解决方案…如果要在ORM上的数据库映射字段为Byte [] / byte [] /
Bynary时从System.Windows.Control.Image保存jpg图像

public byte[] getJPGFromImageControl(BitmapImage imageC)
{
       MemoryStream memStream = new MemoryStream();              
        JpegBitmapEncoder encoder = new JpegBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create(imageC));
        encoder.Save(memStream);
        return memStream.ToArray();
}

呼叫为:

getJPGFromImageControl(firmaUno.Source as BitmapImage)

希望可以帮助:)

2020-05-19