visual studio ruta resource open obtener imagen from form cambiar browse c# image winforms load

studio - show image in picturebox c#



Cargar imagen del área de recursos del proyecto en C# (16)

¿Estás usando Windows Forms? Si ha agregado la imagen mediante la interfaz de usuario de Propiedades / Recursos, tendrá acceso a la imagen desde el código generado, de modo que puede hacer esto simplemente:

var bmp = new Bitmap(WindowsFormsApplication1.Properties.Resources.myimage);

Tengo una imagen en mi proyecto almacenada en Resources / myimage.jpg. ¿Cómo puedo cargar dinámicamente esta imagen en un objeto Bitmap?


Código que uso en varios de mis proyectos ... Supone que almacena imágenes en el recurso solo como mapas de bits, no como iconos

public static Bitmap GetImageByName(string imageName) { System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly(); string resourceName = asm.GetName().Name + ".Properties.Resources"; var rm = new System.Resources.ResourceManager(resourceName, asm); return (Bitmap)rm.GetObject(imageName); }


Con ImageBox llamado "ImagePreview FormStrings.MyImageNames" contiene un método de conversión de cadena get / set regular, que están vinculados a una lista de tipo scrollbox. Las imágenes tienen los mismos nombres que los nombres vinculados en la lista, excepto las terminaciones .bmp. los mapas de bits se arrastran a resources.resx

Object rm = Properties.Resources.ResourceManager.GetObject(FormStrings.MyImageNames); Bitmap myImage = (Bitmap)rm; ImagePreview.Image = myImage;


Debe cargarlo desde la secuencia de recursos.

Bitmap bmp = new Bitmap( System.Reflection.Assembly.GetEntryAssembly(). GetManifestResourceStream("MyProject.Resources.myimage.png"));

Si desea conocer todos los nombres de recursos en su conjunto, vaya con:

string[] all = System.Reflection.Assembly.GetEntryAssembly(). GetManifestResourceNames(); foreach (string one in all) { MessageBox.Show(one); }


En mi caso, estaba usando íconos en mi recurso, pero necesitaba agregarlos dinámicamente como imágenes a algunos ToolStripMenuItem (s). Entonces, en el método que creé (que es de donde proviene el siguiente fragmento de código), tuve que convertir los recursos del icono en mapas de bits antes de poder devolverlos para MenuItem a mi MenuItem .

string imageName = myImageNameStr; imageName = imageName.Replace(" ", "_"); Icon myIcon = (Icon)Resources.ResourceManager.GetObject(imageName); return myIcon.ToBitmap();

Algo más que debe tener en cuenta, si su imagen / icono tiene espacios ("") en su nombre cuando los agrega a su recurso, VS reemplazará automáticamente esos espacios con "_" (s). Porque los espacios no son un carácter válido al nombrar su recurso. Por eso estoy usando el método Replace() en mi código de referencia. Es probable que simplemente ignores esa línea.


La respuesta de JDS funcionó mejor. C # example loading image:

  • Incluya la imagen como Recurso (Árbol de proyectos-> Recursos, haga clic con el botón derecho para agregar el archivo deseado NombreDeImagen.png)
  • Recurso incrustado (Árbol de proyectos-> Recursos-> Nombre de imagen.png, haga clic con el botón derecho en Seleccionar propiedades)
  • El formato de archivo .png (.bmp .jpg también debería estar bien)

pictureBox1.Image = ProjectName.Properties.Resources.ImageName;

Tenga en cuenta lo siguiente:

  • El archivo de imagen de recurso es "NombreDeImagen.png", la extensión de archivo debe omitirse.
  • ProjectName puede quizás entenderse más adecuadamente como "Nombre de ensamblado", que debe ser el ingreso de texto respectivo en la página Proyecto-> Propiedades.

La línea de código de ejemplo se ejecuta con éxito utilizando VisualStudio 2015 Community.


Lo mejor es agregarlos como Recursos de Imagen en la configuración de Recursos en el Proyecto. Luego puede obtener la imagen directamente haciendo Resources.myimage. Esto obtendrá la imagen a través de una propiedad C # generada.

Si solo configura la imagen como Recurso incrustado, puede obtenerla con:

string name = "Resources.myimage.jpg" string namespaceName = "MyCompany.MyNamespace"; string resource = namespaceName + "." + name; Type type = typeof(MyCompany.MyNamespace.MyTypeFromSameAssemblyAsResource); Bitmap image = new Bitmap(type.Assembly.GetManifestResourceStream(resource));

Donde MyTypeFromSameAssemblyAsResource es de cualquier tipo que tenga en su ensamblado.


Miré el código de diseñador de uno de mis proyectos y noté que usaba esta notación

myButton.Image = global::MyProjectName.Properties.Resources.max;

donde max es el nombre del recurso que cargué en el proyecto.


Mucho más fácil que la mayoría de las respuestas propuestas

tslMode.Image = global::ProjectName.Properties.Resources.ImageName;


O puede usar esta línea cuando trabaje con WPF o Silverlight, especialmente donde ya tiene la cadena fuente en el marcado XAML:

(ImageSource)new ImageSourceConverter().ConvertFromString(ImagePath);

Donde ImagePath es algo así como:

string ImagePath = "/ProjectName;component/Resource/ImageName.png";


Por extraño que parezca, al hurgar en el diseñador encuentro lo que parece ser un enfoque mucho más simple:

La imagen parece estar disponible desde .Properties.Resources.

Simplemente estoy usando una imagen ya que todo lo que me interesa es pegarla en un control con una imagen.

(Net 4.0, VS2010)


Puede obtener una referencia a la imagen de la siguiente manera:

Image myImage = Resources.myImage;

Si desea hacer una copia de la imagen, deberá hacer lo siguiente:

Bitmap bmp = new Bitmap(Resources.myImage);

No olvide deshacerse de bmp cuando haya terminado con él. Si no conoce el nombre de la imagen del recurso en tiempo de compilación, puede usar un administrador de recursos:

ResourceManager rm = Resources.ResourceManager; Bitmap myImage = (Bitmap)rm.GetObject("myImage");

El beneficio de ResourceManager es que puede usarlo donde Resources.myImage normalmente estaría fuera del alcance, o donde desea acceder dinámicamente a los recursos. Además, esto funciona para sonidos, archivos de configuración, etc.


También puedes guardar el bmp en una var como esta:

var bmp = Resources.ImageName;

¡Espero eso ayude!


Use debajo de uno. He probado esto con la celda de vista de Grilla del formulario de Windows.

Object rm = Properties.Resources.ResourceManager.GetObject("Resource_Image"); Bitmap myImage = (Bitmap)rm; Image image = myImage;

Nombre de "Resource_Image", puedes encontrarlo desde el proyecto.

Bajo el nombre del proyecto, puede encontrar Properties . Expandelo. Ahí puede ver el archivo Resources.resx . Abrelo. Aplicar su nombre de archivo como "Resource_Image".


Yo sugiero:

System.Reflection.Assembly thisExe; thisExe = System.Reflection.Assembly.GetExecutingAssembly(); System.IO.Stream file = thisExe.GetManifestResourceStream("AssemblyName.ImageFile.jpg"); Image yourImage = Image.FromStream(file);

Desde msdn: http://msdn.microsoft.com/en-us/library/aa287676(v=vs.71).aspx

Usar Image.FromStream es mejor porque no necesita conocer el formato de la imagen (bmp, png, ...).


this.toolStrip1 = new System.Windows.Forms.ToolStrip(); this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.Size = new System.Drawing.Size(444, 25); this.toolStrip1.TabIndex = 0; this.toolStrip1.Text = "toolStrip1"; object O = global::WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject("best_robust_ghost"); ToolStripButton btn = new ToolStripButton("m1"); btn.DisplayStyle = ToolStripItemDisplayStyle.Image; btn.Image = (Image)O; this.toolStrip1.Items.Add(btn);