2010-01-26 22:37:48 +00:00
|
|
|
|
/*
|
|
|
|
|
|
2012-05-27 14:23:31 +00:00
|
|
|
|
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/.
|
2010-01-26 22:37:48 +00:00
|
|
|
|
|
2012-05-27 14:23:31 +00:00
|
|
|
|
Copyright (C) 2009-2010 Michael M<EFBFBD>ller <mmoeller@openhardwaremonitor.org>
|
|
|
|
|
|
2010-01-26 22:37:48 +00:00
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Drawing;
|
2010-05-25 18:57:28 +00:00
|
|
|
|
using System.IO;
|
2010-01-26 22:37:48 +00:00
|
|
|
|
using System.Reflection;
|
|
|
|
|
|
|
|
|
|
namespace OpenHardwareMonitor.Utilities {
|
|
|
|
|
public class EmbeddedResources {
|
|
|
|
|
|
|
|
|
|
public static Image GetImage(string name) {
|
|
|
|
|
name = "OpenHardwareMonitor.Resources." + name;
|
|
|
|
|
|
|
|
|
|
string[] names =
|
|
|
|
|
Assembly.GetExecutingAssembly().GetManifestResourceNames();
|
|
|
|
|
for (int i = 0; i < names.Length; i++) {
|
2010-05-25 18:57:28 +00:00
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2010-01-26 22:37:48 +00:00
|
|
|
|
|
|
|
|
|
return new Bitmap(1, 1);
|
|
|
|
|
}
|
2010-02-07 16:37:15 +00:00
|
|
|
|
|
|
|
|
|
public static Icon GetIcon(string name) {
|
|
|
|
|
name = "OpenHardwareMonitor.Resources." + name;
|
|
|
|
|
|
|
|
|
|
string[] names =
|
|
|
|
|
Assembly.GetExecutingAssembly().GetManifestResourceNames();
|
|
|
|
|
for (int i = 0; i < names.Length; i++) {
|
2010-05-25 18:57:28 +00:00
|
|
|
|
if (names[i].Replace('\\', '.') == name) {
|
|
|
|
|
using (Stream stream = Assembly.GetExecutingAssembly().
|
|
|
|
|
GetManifestResourceStream(names[i])) {
|
|
|
|
|
return new Icon(stream);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2010-02-07 16:37:15 +00:00
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
2010-01-26 22:37:48 +00:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|