Извлечение внедрённых ресурсов (GetManifestResourceStream возвращает null) - C#
Формулировка задачи:
Здесь скрины исключения и файла ресурса *resx:
Странно делаю всё по примерам с msdn, но ничего не выходит, GetManifestResourceStream возвращает null, хотя я указал правильное имя файла .
Я уже не знаю что делать, весь день в гугле искал
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Reflection; using System.Windows.Forms; namespace WindowsFormsApplication5 { public partial class Form1 : Form { public Form1() { InitializeComponent(); System.IO.Stream file = Assembly.GetExecutingAssembly().GetManifestResourceStream("Sturtbutton.png"); this.pictureBox1.Image = Image.FromStream(file); } } }
Решение задачи: «Извлечение внедрённых ресурсов (GetManifestResourceStream возвращает null)»
textual
Листинг программы
using System; using System.IO; using System.Reflection; using System.Resources; // нужна System.Windows.Forms.dll namespace ConsoleApplication { class Program { static void Main(string[] args) { var names = Assembly.GetExecutingAssembly() .GetManifestResourceNames(); if (names == null || names.Length == 0) throw new InvalidOperationException("No resources in asm."); Stream mfStream = Assembly.GetExecutingAssembly() .GetManifestResourceStream(names[0]); using (var resReader = new ResourceReader(mfStream)) { string resType; byte[] resData; resReader.GetResourceData("Lama_Alpaka_Trekking_Welschnofen_Carezza_05", out resType, out resData); int startIndex = 0; // поиск начала изображения for (int i = 0; i < resData.Length - 1; i++) { if (resData[i] == 0xFF && resData[i + 1] == 0xD8) { startIndex = i; break; } } using (var file = new FileStream(@"C:\Development\lama2.jpg", FileMode.OpenOrCreate)) { file.Write(resData, startIndex, resData.Length - startIndex); } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д