Files
ReLibreHardwareMonitor/LibreHardwareMonitor.Windows.Forms/Utilities/EmbeddedResources.cs
T
Blacktempel e1f284cbb6 Prepare for Avalonia app - rename LHM UI project (#2360)
* Prepare for Avalonia app - rename LHM UI project.

* Rename

* Fix icons not being displayed.

* Rename workflow project
2026-05-15 10:29:57 +02:00

62 lines
2.0 KiB
C#

// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// Copyright (C) LibreHardwareMonitor and Contributors.
// Partial Copyright (C) Michael Möller <mmoeller@openhardwaremonitor.org> and Contributors.
// All Rights Reserved.
using System.Drawing;
using System.IO;
using System.Reflection;
namespace LibreHardwareMonitor.Windows.Forms.Utilities;
public class EmbeddedResources
{
const string ResourceNamespace = $"LibreHardwareMonitor.Windows.Forms.Resources";
public static Image GetImage(string name)
{
name = $"{ResourceNamespace}." + name;
string[] names = Assembly.GetExecutingAssembly().GetManifestResourceNames();
for (int i = 0; i < names.Length; i++)
{
if (names[i].Replace('\\', '.') == name)
{
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(names[i]))
{
// "You must keep the stream open for the lifetime of the Image."
Image image = Image.FromStream(stream);
// so we just create a copy of the image
Bitmap bitmap = new Bitmap(image);
// and dispose it right here
image.Dispose();
return bitmap;
}
}
}
return new Bitmap(1, 1);
}
public static Icon GetIcon(string name)
{
name = $"{ResourceNamespace}." + name;
string[] names = Assembly.GetExecutingAssembly().GetManifestResourceNames();
for (int i = 0; i < names.Length; i++)
{
if (names[i].Replace('\\', '.') == name)
{
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(names[i]))
{
return new Icon(stream);
}
}
}
return null;
}
}