• 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

    • hey guys its not counterfeit. i did test its ok needs formatting but how do i do that i need to go in dos and disk Disk Management anyone know step by step please 
    • The first link on the github page gives me a very, very red page warning me about phishing........
    • Hey Nick! 👋 No worries at all — you're not alone in this, and it's great you're asking for help. Let me walk you through a simple, step-by-step fix using the tool mentioned on that AOMEI Partition Assistant guide — it really does the trick for many people with this exact issue! ✅ Here’s how to restore your USB back to full 256GB on Windows 11: Download & Install AOMEI Partition Assistant Go to the link you shared: AOMEI Partition Assistant and click the Download Freeware button. Insert your USB stick (Sandisk Ultra 256GB) Make sure it's properly connected. Wait for the system to detect it. Launch AOMEI Partition Assistant Once open, you'll see all your connected drives listed. Locate your USB Drive Look for the one that says something like Disk X – Removable and shows only 3.1GB or so. Right-click on your USB Drive’s Partition Then select Delete Partition → confirm the deletion. Now, right-click on the unallocated space (it should now show full unallocated capacity) Choose Create Partition → format it as FAT32 or exFAT (recommended for larger drives) → click OK. Click “Apply” in the top left corner Then hit Proceed to execute the pending operations. Wait a bit... and boom! 🎉 Your USB should now be restored to its full 256GB capacity!
    • When Facebook bought Beat Saber, they promised exactly this would never happen. Facebook can’t not lie.
  • Recent Achievements

    • First Post
      Fuzz_c earned a badge
      First Post
    • First Post
      TIGOSS earned a badge
      First Post
    • Week One Done
      slackerzz earned a badge
      Week One Done
    • Week One Done
      vivetool earned a badge
      Week One Done
    • Reacting Well
      pnajbar earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      713
    2. 2
      ATLien_0
      279
    3. 3
      Michael Scrip
      209
    4. 4
      +FloatingFatMan
      201
    5. 5
      Steven P.
      131
  • Tell a friend

    Love Neowin? Tell a friend!