2010-03-09 18 views
6

Me gustaría saber lo siguiente: agregué la carpeta "Gráficos" en mi proyecto y metí un BMP en él. Ahora me gustaría cargar la imagen desde mi código, pero no puedo entender cómo. Sé que es simple con los recursos, pero ¿hay alguna manera de no agregar la imagen a los recursos? GraciasC#: Accediendo a la imagen agregada a la carpeta del proyecto

+0

mira esta pregunta http://stackoverflow.com/questions/154262/example-code-required-for-how-to-access-embedded-net-image-resources-in-c – IordanTanev

Respuesta

2

Una vez me pregunté sobre esto también, así que lo descubrí y lo puse en un blog post. Por su ejemplo, debería ser algo como esto:

var a = Assembly.GetExecutingAssembly(); // Or another Get method if you need to get it from some other assembly 

var image = Image 
    .FromStream(a.GetManifestResourceStream("DefaultNameSpace.Graphics.image.bmp")); 

Recuerde marcar la imagen como un recurso incrustado y disponer de la imagen cuando se hace así no obtiene ninguna fuga :)

+0

Gracias. ¿Qué sucede si dejo "Contenido" como una acción de compilación? Y, por favor, ¿a qué nombre pertenece la Asamblea? No puedo llamarlo. – Petr

+0

DefaultNamespace es el espacio de nombres que ha proporcionado en la configuración de su proyecto. Por defecto es el nombre de tu proyecto. Si usa Content Build Action, creo que el archivo se copiará en su directorio de salida. Si haces eso, deberías usar 'Image.FromFile (" pathtoimage.bmp ")' o algo así. – Svish

+0

Hmm .. He intentado escribir Assembly. pero nada apareció. – Petr

1

Para obtener un recurso:

myNamespace.Properties.Resources.images.<imagename> 

Usted puede emitir ese el tipo que necesita (o utilizar una función, por ejemplo, FromFile)

0

Se debe especificar en las propiedades del archivo que se debe desplegado en la construcción de la aplicación:

Copiar al Directorio de salida: Copia siempre

A continuación, puede acceder al archivo utilizando el método Image.FromFile, la ruta será exactamente la misma que en su proyecto.

+1

Si haces esto, entonces no es un recurso incrustado. Puede tener algunos problemas graves si no maneja los archivos que faltan cuando los usuarios simplemente copian el archivo exe en lugar de toda la carpeta. – RvdK

Cuestiones relacionadas