Tag: bitmapimage

如何将BitmapImage转换为Icon?

在我的应用程序中,我必须将一个List发送到我在WCF中的shell扩展。 这些MenuItem由图标和标签组成。 该图标的类型是System.Drawing.Icon但我必须使用System.Windows.Media.Imaging.BitmapImage 。 有没有办法将BitmapImage转换为Icon ?

对于PixelWidth和PixelHeight,BitmapImage返回0

我正在尝试做一个超级简单的事情:获取图像的大小。 所以我创建了我的BitmapImage但是当我尝试访问PixelWidth和PixelHeight时我得到0。 我怎么能做到这一点呢? 编辑:(添加示例代码) 我只是这样做: var baseUri = new Uri(“ms-appx:///”); var bitmapImage = new BitmapImage(new Uri(baseUri, “Assets/Logo.png”)); MyImage.Source = bitmapImage; Debug.WriteLine(“Width: ” + bitmapImage.PixelWidth + ” Height: ” + bitmapImage.PixelHeight); 在控制台中,我得到: Width: 0 Height: 0

将位图转换为图像

因此,在我从DLL中取出图像并将其放入图像控件后,它就是一个BitmapImage。 要将其打包回dll,必须将其转换回图像。 如何将其转换回图像,如何将其重新打包回dll? 这都是用c#编写的wpf。 private void compileDLL_Click(object sender, RoutedEventArgs e) { string sourcePath = Directory.GetCurrentDirectory() + “\\PCAngelResources.dll”; //destination path string dllname = textBox1.Text + “_PCAngelResources.dll”; string targetPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); string destFile = System.IO.Path.Combine(targetPath, dllname); System.IO.File.Copy(sourcePath, destFile, true); //lstImages = new Dictionary(); //string filename = “PCAngelResources.dll”; Assembly pcangdll = Assembly.LoadFile(sourcePath); System.Globalization.CultureInfo culture = Thread.CurrentThread.CurrentCulture; ResourceManager rm […]

将XAML文件转换为BitmapImage

我想从XAML (文本)文件创建具有所需分辨率的BitmapImage 。 我怎样才能做到这一点? 谢谢。

从BitmapImage获取支持的图像格式

如何获取System.Windows.Media.Imaging.BitmapImage支持的图像格式列表? 我正在用C#WPF编写一个简单的图像处理工具。 BitmapImage类是更有用的位图类之一,因为它能够从各种格式进行解码。 特别是,它能够在我的电脑上打开NEF(尼康的RAW格式)。 BitmapImage可能会打开来自其他制造商的各种RAW格式,这是我热衷于使用的function。 由于我不知道每个可以作为BitmapImage打开的格式,我目前正在使用try / catch尝试从用户尝试打开的每个文件构造一个BitmapImage。 这显然不是最有效的方式。 据我所知,BitmapImageinheritance自BitmapSource,它通过在用户的系统上查找可用的编解码器来决定它可以打开哪些文件 。 因此,编解码器可用性可能因机器而异,这意味着支持的格式列表无法硬编码到程序中。 我需要一种方法来检查用户机器上支持的格式是什么。 我在System.Drawing中找到了这个方法 。 这将返回支持的编解码器列表,其中包含受支持的文件扩展名列表,而Systems.Windows.Media.Imaging的等效编辑器正是我所需要的。

在UWP中将BitmapImage转换为字节数组

如何在UWP中将BitmapImage对象转换为字节数组? 在.Net中很容易实现,即使在以前的WinRT版本中,在整个互联网上看都没有成功,其中一个解决方案是使用像本答案中提到的WriteableBitmap ,但在当前版本的UWP中,构建一个WriteableBitmap出一个BitmapImage是不可能的,任何解决方法?

我可以从Silverlight中的BitmapImage获取byte 吗?

我试图在Silverlight和WCF服务之间来回传递一些图像。 如果可能的话,我想传递一个System.Windows.Media.Imaging.BitmapImage ,因为这意味着客户端不必进行任何转换。 但是,在某些时候我需要将此图像存储在数据库中,这意味着图像表示必须能够转换为byte[]和从byte[]转换。 我可以通过将数组读入MemoryStream并使用BitmapImage.SetSource()从byte[]创建BitmapImage 。 但我似乎无法找到另一种方式转换 – 从BitmapImage到byte[] 。 我错过了一些明显的东西吗? 如果它有帮助,转换代码可以在服务器上运行,即它不需要是Silverlight安全的。

将隐藏的消息写入图像文件c#

我正在寻找一个教程,其中描述了如何使用C#将隐藏文本写入/读取到图像文件中,但遗憾的是我发现了关于此的任何好post,所以我决定在这里询问这个小技巧。 假设我有一个名为test.jpg的图像文件,有没有办法在这个文件中写一个像“Hello word”这样的隐藏文本? 我已经阅读了有关图像元数据的内容,我想我应该尝试以某种方式编写这个元数据,但我不知道如何找到。 如果有人知道该怎么做,请帮助我理解如何做到这一点。 谢谢。

我多次调用GC.Collect()后图像内存干净

我正在使用图像进行预览。 在我的工作之后,我只是将ImageSource设置为null并调用GC.Collect()但是在调用GC.Collect()之后,50%的内存仍处于保持状态,当我再次调用GC.Collect()时它仍然保持不变。 为什么我的电话要干净? 点击Destroy后 private void ImgDistry_Click(object sender, RoutedEventArgs e) { image.Source = null; GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); } 在Destroy Image之后设置image.Source = null,并调用GC.Collect(); 记忆仍然暂停。 一段时间后应该自动清洁。 并保持内存,直到我在15-30秒后调用GC.Collect()2-3次。我可以立即清除未使用的位图内存吗? 检查video(内部代码和步骤): – https://www.dropbox.com/s/457hhjnlttbzhlp/TinyTake%20by%20MangoApps-16-08-2018-06-28-51.mp4?dl=0 private void ImgDisplay_Click(object sender, RoutedEventArgs e) { GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); var bitmap = new BitmapImage(); using (var stream = File.OpenRead(filePath)) { bitmap.BeginInit(); bitmap.CacheOption = BitmapCacheOption.OnLoad; […]

如何在Windows Phone上合并2个图像

我有2张图片,我想将它们合并到Windows Phone中的应用程序中。 我的WP相机拍摄的第一张图像,第二张图像是一个框架(边框,滤镜等),用户可以在我们的模板中选择。 那么如何将它们合并为一个呢? 谢谢和最好的问候。