• 0

The Bitmap.FromResource() function


Question

Hi all. I'm trying to use the Bitmap.FromResource() function in C#, but I don't understand the first part of the syntax -> 'System.IntPntr hInstance'.

Could someone explain me what I have to fill in there. I guess it must be some sort of pointer to my program. I tried a couple of things, including 'IntPtr.Zero', but it doesn't work. The program gives me the following error:

System.ArgumentException: Invalid parameter used

Is there someone who knows how to fix this? Thx in advance.

Link to comment
https://www.neowin.net/forum/topic/369511-the-bitmapfromresource-function/
Share on other sites

6 answers to this question

Recommended Posts

  • 0

HINSTANCE and HMODULE are the base addresses of any exe/dll/images loaded into memory. Are you loading the resource from your executable? If yes, you can use 0 (IntPtr.Zero?). If you are loading from a dll, how are you loading the dll?

  • 0

Nope, it doesn't work. I get the following error returned:

System.ArgumentException: Source 1.bmp cannot be found in the class Elvish_Dance.Form1.

at System.Drawing.Bitmap..ctor(Type type, String resource)

at Elvish_Dance.Form1.timer_Tick(Object sender, EventArgs e) in c:\documents and settings\djtrauma\mijn documenten\visual studio projects\elvish dance\elvish dance\form1.cs:line 146

at System.Windows.Forms.Timer.OnTick(EventArgs e)

at System.Windows.Forms.Timer.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr idEvent, IntPtr dwTime)

Part of my code:

Bitmap _bmp;

 ?	switch(gen)
 ?	{
 ? ?case 1:
 ? ?	_bmp = new Bitmap(GetType(), "1.bmp");
 ? ?	screen.Image = _bmp;
 ? ?	break;
 ? ?case 2:
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ...

  • 0

One solution would be this:

Select the resource in your Solution Explorer and change the "Build Action" property to "Embedded Resource".

When a resource is added like that, it can be accessed from the Assembly.

public Stream GetEmbeddedFile(string Name)
{
     try
     {
          Assembly asm = Assembly.GetExecutingAssembly();
          return asm.GetManifestResourceStream(Name);
     }
     catch
     {
          return null;
     }
}

This method returns any embedded resource as a stream, or null when an exception occurs.

The Name parameter should include the AssemblyName, something like: MyApplication.1.bmp

A Bitmap can be created by using Bitmap.FromStream(...);

Hope this helps :)

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I happen to try it today not knowing about the update and was happily surprised; it is great.
    • Hello, Hardware Support Applications are a special kind of Microsoft Store app and have to go through additional checks and certifications because they can communicate directly with their driver, which means that a vulnerability in one of them could allow an attacker access to kernel space memory through the HSA ←→ device driver interface.  In other words, a BYOVD (bring your won vulnerable driver) attack, but with the HSA being used as an extra step. Remember, the Microsoft Store is strategic to Microsoft's long-term goals: they see it as the means to get the same 30% of every application sale that Apple and Google get through their stores, which is why it has been a fixture of Windows since Windows 8 was introduced in 2012 despite a low adoption rate.  Microsoft cannot afford to have anyone get an app through their store which causes a security issue for their end users.  Even if the app was written by and uploaded to the Microsoft Store by a partner, it is Microsoft's name on the store, and they are the ones that will have reputational/brand damage if they allow something malicious into their store. Regards, Aryeh Goretsky  
    • This is more from my childhood, when nickelodeon just launched and had to license shows to have something to air. Left a big an impact, but probably more emotion positive / childhood thing. Europe got the follow up season's decade's latter with the animation studio that did Air Bender but never licenses for the US. I miss the day's of longer intro's. Nier (PS3) Intro is epic, and was very unexpected.  PS1 Xengears was also epic and an amazing game.  
    • Sayan Sen, do you think one day an image of the Windows Vista desktop or the wallpaper could be used in the primary image of an article? (When I think of CDs and DVDs I think of that release of Windows and of earlier releases; it is the one that debuted IMAPI 2.0 and other features.)
    • Big fan of EAC Here's a good non-default naming scheme I found on the web (can't take credit) File Name Scheme - %albumartist%\%year% - %albumtitle%\%tracknr2% %title% Various Artists Naming Scheme - Various Artists\%year% - %albumtitle%\%tracknr2% %title% Also, I need test but there is a new flac.exe binary & dll you can drop in the folder to upgrade flac support. I did this pre EAC 1.8. EAC 1.8 did upgrade it to 1.4.3. Flac 1.5.0 came out this year. https://ftp.osuosl.org/pub/xiph/releases/flac/ I don't know how much of a difference / impact will make.
  • Recent Achievements

    • Week One Done
      maimutza earned a badge
      Week One Done
    • Week One Done
      abortretryfail earned a badge
      Week One Done
    • First Post
      Mr bot earned a badge
      First Post
    • First Post
      Bkl211 earned a badge
      First Post
    • One Year In
      Mido gaber earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      485
    2. 2
      +FloatingFatMan
      263
    3. 3
      snowy owl
      240
    4. 4
      ATLien_0
      227
    5. 5
      Edouard
      188
  • Tell a friend

    Love Neowin? Tell a friend!