Ho alcune immagini nella cartella delle risorse nel mio progetto, ma voglio cambiare la casella di immagine da questi file di risorse del progettoCome recuperare Immagine da cartella Risorse del progetto in C#
risposta
Considerare l'utilizzo Properties.Resources.yourImage
Properties.Resources
contiene tutto ciò che hai aggiunto come risorsa (vedi le proprietà del progetto, scheda risorse)
oltre a questo, se si incorpora le immagini come risorse nel progetto, è possibile ottenere a loro chiamando GetManifestResourceStream
sulla assemblea in cui hai incorporato le immagini, qualcosa come
Stream imgStream =
Assembly.GetExecutingAssembly().GetManifestResourceStream(
"YourNamespace.resources.ImageName.bmp");
pictureBox.Image = new Bitmap(imgStream);
Non dimenticare di contrassegnare l'immagine come una risorsa incorporata! (Devi impostare l'azione di creazione per l'immagine nella sua finestra delle proprietà)
Se stai scoprendo che stai tornando indietro null
da GetManifestResourceStream
, potresti dare il nome sbagliato. (Può essere difficile ottenere i nomi corretti) Chiama GetManifestResourceNames
sull'assieme; che ti restituirà tutti i nomi delle risorse e puoi trovare quello nella lista di cui hai bisogno.
string img = null;
private void btnShow_Click(object sender, EventArgs e)
{
string imgName;
img = textBox1.Text;
imgName = "images/" + img + ".jpg";
if (imgName == null)
{
MessageBox.Show("no photo");
}
else if (imgName != null)
{
this.picBox1.Image = Image.FromFile("images/" + img + ".jpg");
}
}
Di seguito è riportato il codice per recuperare l'immagine dalla cartella delle risorse. Normalmente conserviamo le immagini nella cartella delle risorse. ma a volte abbiamo il nome dell'immagine solo con noi. in tal caso è possibile accedere alle immagini dalla cartella delle risorse utilizzando solo il nome dell'immagine.
Sotto Codice dimostrerà a riguardo.
private System.Resources.ResourceManager RM = new System.Resources.ResourceManager("YourAppliacationNameSpace.Properties.Resources", typeof(Resources).Assembly);
PbResultImage.Image = (Image)RM.GetObject(YourPictureName);
- YourAppliacationNameSpace significa nome dell'applicazione.
- YourPictureName indica l'immagine a cui si desidera accedere dalla cartella delle risorse. ma il nome dell'immagine deve essere senza estensione, ad es. (PNG, GIF, JPEG ecc.)
spero di essere utile a qualcuno.
Grazie.
Salam.
ha funzionato per me:
(Bitmap) Properties.Resources.ResourceManager.GetObject("ImageName");
Partenza: http://stackoverflow.com/q/1192054/158288 – Koekiebox