• 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

    • Google Drive videos finally get thumbnail previews, but there's a big caveat by Usama Jawad Google Drive is a pretty decent cloud storage solution, especially if you're well-invested in Google's ecosystem. If you use an Android phone, you've probably used Google Drive to store your media content, emails, and WhatsApp backups. Just a couple of weeks ago, Google announced a UI revamp for its desktop sync client for Drive, and while it has announced a much smaller feature today, it's definitely quite handy. Videos stored on Google Drive are finally getting thumbnail previews. This means that if you hover your mouse over the progress bar of a video, you'll see a thumbnail for that time frame, just like YouTube. And similar to YouTube, you'll also be able to drag your cursor (or finger, depending upon your input mechanism) to scrub through the video while seeing thumbnail previews. This is a very useful capability that feels long overdue. When trying to locate a specific scene in a video, you no longer need to guess the approximate time, you can simply use thumbnail previews to sift through the video and reach your desired frame. There is a big caveat, though. Thumbnail previews in Google Drive videos are just available for newly uploaded content. There is no way to leverage the feature on the videos currently present in your Drive library. If you have turned on automatic backups to Drive through your Android phone or are just a Drive user in general, you likely have hundreds, if not thousands, of videos in your library. However, there is no way to enable thumbnail previews on any of them. In terms of rollout, this capability is now being made available to all Google Workspace customers, Google Workspace Individual subscribers, and personal Google accounts over the next few days. There is no way for Google Workspace admins to disable the feature from their side.
    • ..."both powered by Intel's latest Core Ultra 200 Series processors"
    • Well can they use AI to design UI? Because I don't think AI's output would be worse than the current rubbish being designed by Windows UI designers for last 25 years
  • Recent Achievements

    • Week One Done
      SmileWorks Dental earned a badge
      Week One Done
    • Community Regular
      vZeroG went up a rank
      Community Regular
    • Collaborator
      Snake Doc earned a badge
      Collaborator
    • Week One Done
      Snake Doc earned a badge
      Week One Done
    • One Month Later
      Johnny Mrkvička earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      583
    2. 2
      Michael Scrip
      199
    3. 3
      ATLien_0
      196
    4. 4
      +FloatingFatMan
      129
    5. 5
      Xenon
      123
  • Tell a friend

    Love Neowin? Tell a friend!