Utilities/EmbeddedResources.cs
author moel.mich
Mon, 02 Jul 2012 21:14:40 +0000
changeset 357 fb8dc26f65a4
parent 127 76aaf45a01c7
permissions -rw-r--r--
Added mainboard specific configurations for the following Gigabyte mainboards: EX58-UD3R, G41M-Combo, G41MT-S2, G41MT-S2P, GA-MA770T-UD3P, GA-MA785GM-US2H, GA-MA78LM-S2H, GA-MA790X-UD3P, H55-USB3, H55N-USB3, H61M-DS2 REV 1.2, H61M-USB3-B3 REV 2.0, H67A-USB3-B3, P55A-UD3, P67A-UD3-B3, P67A-UD3R-B3, Z68A-D3H-B3, Z68AP-D3, Z68X-UD3H-B3.
     1 /*
     2  
     3   This Source Code Form is subject to the terms of the Mozilla Public
     4   License, v. 2.0. If a copy of the MPL was not distributed with this
     5   file, You can obtain one at http://mozilla.org/MPL/2.0/.
     6  
     7   Copyright (C) 2009-2010 Michael Möller <mmoeller@openhardwaremonitor.org>
     8 	
     9 */
    10 
    11 using System;
    12 using System.Collections.Generic;
    13 using System.Drawing;
    14 using System.IO;
    15 using System.Reflection;
    16 
    17 namespace OpenHardwareMonitor.Utilities {
    18   public class EmbeddedResources {
    19 
    20     public static Image GetImage(string name) {
    21       name = "OpenHardwareMonitor.Resources." + name;
    22 
    23       string[] names = 
    24         Assembly.GetExecutingAssembly().GetManifestResourceNames();
    25       for (int i = 0; i < names.Length; i++) {
    26         if (names[i].Replace('\\', '.') == name) {
    27           using (Stream stream = Assembly.GetExecutingAssembly().
    28             GetManifestResourceStream(names[i])) {
    29 
    30             // "You must keep the stream open for the lifetime of the Image."
    31             Image image = Image.FromStream(stream);
    32 
    33             // so we just create a copy of the image 
    34             Bitmap bitmap = new Bitmap(image);
    35 
    36             // and dispose it right here
    37             image.Dispose();
    38 
    39             return bitmap;
    40           }
    41         }
    42       } 
    43 
    44       return new Bitmap(1, 1);    
    45     }
    46 
    47     public static Icon GetIcon(string name) {
    48       name = "OpenHardwareMonitor.Resources." + name;
    49 
    50       string[] names =
    51         Assembly.GetExecutingAssembly().GetManifestResourceNames();
    52       for (int i = 0; i < names.Length; i++) {
    53         if (names[i].Replace('\\', '.') == name) {
    54           using (Stream stream = Assembly.GetExecutingAssembly().
    55             GetManifestResourceStream(names[i])) {
    56             return new Icon(stream);
    57           }
    58         }          
    59       } 
    60 
    61       return null;
    62     }
    63          
    64   }
    65 }