Как программно получить доступ к изображениям в файле ресурсов?

У меня есть 30 PNGs в файле ресурсов, и я хотел бы выполнить итерации вокруг них в таймере. Этот таймер устанавливает фоновое изображение формы на следующий PNG в последовательности для создания основной анимации.

Я не могу найти простой способ перечислить файл ресурсов и достигнуть действительные образы. Я также стремлюсь сохранить ссылки на изображения не прикрепленными к их именам файлов так, чтобы обновление именования изображений в Файле ресурсов не требовало бы, чтобы я обновил этот раздел кода.

Примечания:

  • Изображения в файле ресурсов называют в последовательности ('image001.png', 'image002.png'...).
  • Этот файл ресурсов используется исключительно для хранения этих изображений.
5
задан InvertedAcceleration 22 January 2010 в 13:09
поделиться

4 ответа

    private void Form1_Load(object sender, EventArgs e)
    {
        var list = WindowsFormsApplication1.Properties.Resources.ResourceManager.GetResourceSet(new System.Globalization.CultureInfo("en-us"), true, true);
        foreach (System.Collections.DictionaryEntry img in list)
        {
            System.Diagnostics.Debug.WriteLine(img.Key);
            //use img.Value to get the bitmap
        }

    }
2
ответ дан 15 December 2019 в 01:01
поделиться

Вот хороший учебник о том, как извлечь вложенные ресурсы здесь на CodeProject, а вот как , чтобы использовать изображение в качестве альфа-смешано, и показывает, как загрузить его в список изображений. Вот класс помощника, чтобы облегчить загрузку встроенных ресурсов здесь .

Надеюсь, это поможет, С уважением, Том.

1
ответ дан 15 December 2019 в 01:01
поделиться

Да, есть по крайней мере один.

Фонд свободного программного обеспечения имеет некоторые ресурсы .NET, известные как DotGNU . Он имеет реализацию CLI и работает на сервере веб-службы.

Если требуется взаимодействие с Java, существует IKVM.NET , который является реализацией Java для платформы .net.

Для получения информации о моно на wii см. ресурс .

Что касается работы mono на iPhone - посмотрите на MonoTouch .

-121--4349591-

Какую версию OpenCV вы используете? Я попробовал ваш код на последнем (OpenCV2.0), и он работает нормально. Вы можете загрузить OpenCV2.0 из здесь .

Если требуется последняя сборка, ее можно проверить с помощью SVN здесь .

-121--4321140-
Assembly asm = Assembly.GetExecutingAssembly();
for(int i = 1; i <= 30; i++)
{
  Stream file = asm.GetManifestResourceStream("NameSpace.Resources.Image"+i.ToString("000")+".png");
  // Do something or store the stream
}

Чтобы получить имя всех встроенных ресурсов:

string[] resourceNames = Assembly.GetManifestResourceNames();
foreach(string resourceName in resourceNames)
{
    System.Console.WriteLine(resourceName);
}

Также проверьте пример в функции Form1_Load.

1
ответ дан 15 December 2019 в 01:01
поделиться
0
ответ дан 15 December 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: