* Prepare for Avalonia app - rename LHM UI project. * Rename * Fix icons not being displayed. * Rename workflow project
62 lines
2.0 KiB
C#
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;
|
|
}
|
|
|
|
}
|