展开

关键词

WPF 从 DrawingVisual 转 BitmapImage 图片

有一些库的设计是需要传入一个 BitmapImage 图片,但是我需要从界面代码创建图片,我没有文件,如何通过 DrawingVisual 画出的控件转换 BitmapImage 传给库? 需要将 DrawingVisual 转为 RenderTargetBitmap 然后将 RenderTargetBitmap 转为 BitmapImage 才可以先创建一个 DrawingVisual 96 是 dpi 的大小将 DrawingVisual 转 RenderTargetBitmap 就可以通过 PngBitmapEncoder 将 RenderTargetBitmap 转图片 var bitmapImage = new BitmapImage(); var bitmapEncoder = new PngBitmapEncoder(); bitmapEncoder.Frames.Add(BitmapFrame.Create BitmapCacheOption.OnLoad; bitmapImage.StreamSource = stream; bitmapImage.EndInit(); }通过这个方法就可以将 DrawingVisual 转 BitmapImage

59720

silverlight中如何将BitmapImage转化为Stream或byte数组?

问题解决了先将BitmapImage转化为WriteableBitmap,然后得到base64字符串,然后可以得到base64的byte变成Stream关键代码:Code highlighting produced WriteableBitmap byte还原为图片:1 byte[] b = ...这里的b为上面生成的base64编码的byte数组2 MemoryStream ms = new MemoryStream(b);3 BitmapImage  bitImage = new BitmapImage();4 bitImage.SetSource(ms);5 img2.Source = bitImage;

36550
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年38元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    win10 uwp 读取保存WriteableBitmap 、BitmapImage 保存 WriteableBitmap 到文件从文件读 WriteableBitmapIma

    我们在UWP,经常使用的图片,数据结构就是 BitmapImage 和 WriteableBitmap。关于 BitmapImage 和 WriteableBitmap 区别,我就不在这里说。 主要说的是 BitmapImage 和 WriteableBitmap 、二进制 byte 的互转。我们先写一个简单的xaml ?用到的图片是我新建自带的。 UWP的 BitmapImage 不能转换为 byte我们可以通过拿 BitmapImage 的 UriSource 把它转为 WriteableBitmap ,可以使用截图获得 BitmapImage 如果想要使用 BitmapImage 的 UriSource 转为 WriteableBitmap,需要 WriteableBitmapEx 。他是在 WPF 就被大家喜欢的库。 那么我们需要首先在 Image 使用 Tap ,假如图片 source 是 BitmapImage前提安装 WriteableBitmapEx ,假如我们的 ViewModel有一个 BitmapImage

    73810

    WPF桌面端开发5-常用技巧

    bitmapImage = new BitmapImage();bitmapImage.BeginInit();bitmapImage.StreamSource = ms;bitmapImage.CacheOption = BitmapCacheOption.OnLoad; bitmapImage.EndInit();ms.Dispose();image1.Source = bitmapImage;还可以使用:BitmapImage bitmapImage = new BitmapImage();bitmapImage.BeginInit();bitmapImage.CacheOption = BitmapCacheOption.OnLoad ;Bitmap => BitmapImage先将Bitmap储存成memorystream,然后指定给BitmapImageprivate BitmapImage BitmapToBitmapImage (System.Drawing.Bitmap bitmap){ BitmapImage bitmapImage = new BitmapImage(); using (System.IO.MemoryStream

    28710

    win10 uwp 获得缩略图 文件缩略图视频小图

    bitmapImage = new BitmapImage(); InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream 但是还需要一个类,用于界面显示图片 public class Ruqya { public Ruqya(BitmapImage image) { Image = image; } public BitmapImage bitmapImage = new BitmapImage(); InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream bitmapImage = new BitmapImage(); InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream var thumbnail = await GetThumbnailAsync(File, n); BitmapImage bitmapImage = new BitmapImage(); InMemoryRandomAccessStream

    73810

    C#调用OpenCV开发简易版美图工具

    bmp = new BitmapImage();bmp.BeginInit();bmp.StreamSource = mem;bmp.EndInit();imgOutput.Source = bmp; bmp = new BitmapImage(); bmp.BeginInit(); bmp.StreamSource = mem; bmp.EndInit(); imgOutput.Source = 亮度—变暗代码如下:BitmapImage bmpSource = new BitmapImage(new Uri(pack:application:,,,imagesocv02.jpg )); Mat 我们通过BitmapImage导入图片后,直接使用BitmapImage的对象的ToMat方法,把BitmapImage转换成了Mat类的对象。 这个ToMat方法,我们需要特别留意一下,因为他并不是BitmapImage类的方法,它是一个扩展方法,只有我们引用了OpenCvSharp命名空间,BitmapImage和Bitmap对象才会增加扩展方法

    92530

    WPF 通过 DrawingContext DrawImage 绘制图片 裁剪图片

    = new BitmapImage(new Uri(pack:application:,,,1.jpg)); var drawingVisual = new DrawingVisual(); using (DrawingContext dc = drawingVisual.RenderOpen()) { dc.DrawImage(bitmapImage, new Rect(100, 100, 50, , new Int32Rect(0, 0, 50, 50));将两个图片同时画出来 public MainWindow() { InitializeComponent(); var bitmapImage = new BitmapImage(new Uri(pack:application:,,,1.jpg)); var drawingVisual = new DrawingVisual(); using = new BitmapImage(new Uri(pack:application:,,,1.jpg)); var drawingVisual = new DrawingVisual(); using

    1.1K20

    Silverlight Load Client Image 加载客户端图片

    ; } set { _status = value; PropertyChanged(this, new PropertyChangedEventArgs(Status)); } } private BitmapImage _imageSource = new BitmapImage(); public BitmapImage ImageSource { get { return _imageSource; } set result.HasValue || result.Value == false) return; BitmapImage imageSource = new BitmapImage(); try { model.Status = 加载 + ofd.File.Name + 成功; } catch (Exception) { model.Status = 加载失败; } } 提示: 不要忘记引入“BitmapImage

    29350

    win10 uwp 存放网络图片到本地 下载图片保存图片从本地打开所有代码Nuget安装

    这里图片我用BitmapImage,Uri是输入网络的下载图片图片也是和其他一样,我们可以简单用系统给的网络web下载。我们需要输入Uri,然后把图片下载。 (Http.HttpClient(); ) IBuffer buffer = await (http.GetBufferAsync(uri); ) BitmapImage img = new BitmapImage img = new BitmapImage(); await img.SetSourceAsync(stream); return img; }所有代码第一次使用图片从网络打开,第二次就可以放在本地, img = new BitmapImage(); await img.SetSourceAsync(stream); return img; } } catch (Exception) { return (Http.HttpClient(); ) IBuffer buffer = await (http.GetBufferAsync(uri); ) BitmapImage img = new BitmapImage

    33010

    win10 uwp 存放网络图片到本地 下载图片保存图片从本地打开所有代码Nuget安装Microsoft.Toolkit.Uwp

    这里图片我用BitmapImage,Uri是输入网络的下载图片图片也是和其他一样,我们可以简单用系统给的网络web下载。我们需要输入Uri,然后把图片下载。 img = new BitmapImage(); using (IRandomAccessStream stream = new InMemoryRandomAccessStream()) { await img = new BitmapImage(); await img.SetSourceAsync(stream); return img; }所有代码第一次使用图片从网络打开,第二次就可以放在本地, img = new BitmapImage(); await img.SetSourceAsync(stream); return img; } } catch (Exception) { return 如果图片在缓存里,直接返回图片var bitmapImage = await ImageCache.Instance.GetFromCacheAsync(distantUri); 清理缓存await

    42210

    WPF 修改图片颜色

    jpg)).Stream;如果找不到图片,就是没有设置图片生成是 Resource解析文件创建 WriteableBitmap 需要使用 ImageSource 所以需要先解析 其他忽略代码 var bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.StreamSource = stream; bitmapImage.EndInit ();使用 BitmapImage 解析文件创建图片在读取图片之后就可以创建图片 var writeableBitmap = new WriteableBitmap(bitmapImage);转换图片格式如果读取到的图片不是 = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.StreamSource = stream; bitmapImage.EndInit = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.StreamSource = stream; bitmapImage.EndInit

    1K10

    iOS系统生成二维码

    CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone); CIContext *context = ; CGImageRef bitmapImage kCGInterpolationNone); CGContextScaleCTM(bitmapRef, scale, scale); CGContextDrawImage(bitmapRef, extent, bitmapImage CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef); CGContextRelease(bitmapRef); CGImageRelease(bitmapImage

    36040

    WPF调用图片或资源(Uri)

    加载本项目的图片用XAML引用资源: 也可以这样 用代码引用资源:Image img;img.Source=new BitmapImage(new Uri(pack:application:,,,imagesmy.jpg ),UriKind.Relative); 也可以直接使用代码中引用图片资源image2.Source = new BitmapImage(new Uri(imagesmy.jpg, UriKind.Relative imagePath = pack:application:,,,Solution;componentProperties..imagesstarmy.jpg;imageBrush.ImageSource = new BitmapImage application:,,,程序集名称;component路径 ,其中pack:application:,,,可以省略示例: 或者 使用siteoforiginimgContent.Source = new BitmapImage

    1.4K31

    WPF图片处理相关

    相互转换 Bitmap --> BitmapImagepublic static BitmapImage BitmapToBitmapImage(Bitmap bitmap){ using (MemoryStream result = new BitmapImage(); result.BeginInit(); According to MSDN, The default OnDemand cache option --> Bitmappublic static Bitmap BitmapImageToBitmap(BitmapImage bitmapImage){ using (MemoryStream outStream wbm){ BitmapImage bmp = new BitmapImage(); using (MemoryStream stream = new MemoryStream()) { BmpBitmapEncoder 图片加载加载本地BitmapImage bImage = new BitmapImage(new Uri(c:image.bmp));image.Source = bImage;加载本地图片并缩放private

    17431

    silverlight项目小结

    Application.GetResourceStream(new Uri(Heros;componentassets + dm.spic, UriKind.Relative));                BitmapImage  bi = new BitmapImage();                bi.SetSource(sri.Stream);                Image img = new Image Application.GetResourceStream(new Uri(Heros;componentassets + dm.spic, UriKind.Relative));                BitmapImage  bi = new BitmapImage();                bi.SetSource(sri.Stream);                Image img = new Image

    48660

    WPF备忘录(7)WPF图片资源路径介绍

    第一种imgContent.Source = new BitmapImage(new Uri(Content.jpg, UriKind.Relative));imgResource.Source = new  BitmapImage(new Uri(Resource.jpg, UriKind.Relative));第二种imgContent.Source = new BitmapImage(new Uri( pack:application:,,,Content.jpg));imgResource.Source = new BitmapImage(new Uri(pack:application:,,,Resource.jpg ));第三种imgContent.Source = new BitmapImage(new Uri(pack:SiteOfOrigin:,,,Content.jpg));     第一种和第二种都可以访问相对路径的

    56850

    WPF 从文件创建图片的方法

    本文告诉大家通过 FileStream 创建文件的方法如果直接通过文件的 URL 创建,那么可能出现文件被占用的问题,不能比较好做文件的修改,建议通过内存的方式加载下面是通过内存加载的代码 var bitmapImage = new BitmapImage(); using (var fileStream = new FileStream(文件路径, FileMode.Open)) { var memoryStream 如果调用了 memoryStream.Dispose 就会显示空白而不是图片 var bitmapImage = new BitmapImage(); using (var fileStream = new

    41740

    WPF Image控件的绑定

    Source属性上面,我们首先要搞清楚Source的类型是什么,public ImageSource Source { get; set; }也就是ImageSource类型,当然在我们绑定的时候用的最多的就是BitmapImage 这个位图图像啦,我们首先来看看BitmapImage的继承关系:BitmapImage:BitmapSource:ImageSource,最终也是一种ImageSource类型。 当然在我们的Model层中我们也可以直接定义一个BitmapImage的属性,然后将这个属性直接绑定到Image的Source上面,当然这篇文章我们定义了一个ImgSource的String类型,所以必须要定义一个转换器 string.IsNullOrEmpty(path)) { return new BitmapImage(new Uri(path, UriKind.Relative)); } else { return

    51410

    C# 图像模板匹配并标注

    ) { Console.WriteLine($:Load() execute error:{ex}); return null; } } 图片加载显示完成后释放 public static BitmapImage LoadImageFreeze(string imagePath) { try { BitmapImage bitmap = new BitmapImage(); if (File.Exists(imagePath CvInvoke.MatchTemplate(src, tempImg, matchImg, TemplateMatchingType.CcoeffNormed);③外部加载 图片,加载显示完成后释放,返回BitmapImage 可以直接赋值给wpf控件的ImageSource public static BitmapImage LoadImageFreeze(string imagePath) { try { BitmapImage bitmap = new BitmapImage(); if (File.Exists(imagePath)) { bitmap.BeginInit(); bitmap.CacheOption = BitmapCacheOption.OnLoad

    5010

    wpf 解决 编码解码器无法使用提供的流类型 The codec cannot use the type of stream provided

    有的时候会有问题 编码解码器无法使用提供的流类型 或者 The codec cannot use the type of stream provided改成 BitmapImage bitImage = new BitmapImage(); bitImage.BeginInit(); bitImage.StreamSource = imageStreamSource; bitImage.EndInit

    27990

    扫码关注云+社区

    领取腾讯云代金券