Редактор ресурсов Visual Studio 2008 раздражает с помощью PNG

У меня есть ресурсный проект DLL в VS2008, который содержит в основном изображения PNG. Каждый раз, когда я импортирую новое изображение в файл ресурсов, я получаю ошибку RC2170: файл растрового изображения не является форматом 3.0 для каждого PNG, который ранее был в файле ресурсов.

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

Такое поведение повторяется для каждого нового добавленного файла PNG, и с ростом числа файлов PNG это становится все более раздражающим.

Кто-нибудь испытывал что-то похожее? Любое решение?

Кстати, мне на самом деле не нужен редактор ресурсов для распознавания файлов PNG как изображений, если это может решить эту проблему.

3 ответа

Согласно этой теме, вы испытываете ошибку в редакторе ресурсов, которая изменяется:

IDI_DENTIFIER PNG "background.png"
чтобы:
IDI_DENTIFIER BITMAP "background.png"

Но будьте осторожны: кажется, что эти ресурсы PNG не загружаются в ОС до Vista при вызове через LoadImage(), Использование этого типа ресурса может ограничить ваше приложение Vista.

Редактор ресурсов напрямую не поддерживает изображения PNG. Вы должны добавить их в виде двоичных файлов, например:

IDI_BACKGROUND  RCDATA    "background.png"

Затем вы можете использовать GDI+ для загрузки их из файла ресурсов. Это объясняется в этой статье (C++)

Я боролся с этим, но обнаружил, что (по крайней мере, в Visual Studio 2012) вы можете легко добавить файл png в качестве ресурса. В представлении ресурсов щелкните правой кнопкой мыши имя файла.rc и выберите "Добавить ресурс". Выберите тип "Bitmap" и нажмите "Import". Выберите нужный файл.png. В ваш список ресурсов должен быть добавлен новый раздел под названием "PNG", и он должен работать так же, как ресурс BITMAP.

Я видел этот сбой в некоторых случаях - если это так, сохраните копию вашего png-файла с расширением.bmp (или сохраните его как растровое изображение), а затем добавьте его как растровое изображение, как указано выше. Отредактируйте файл ресурсов, и вы увидите следующую строку:

IDB_NEWFILE BITMAP "NewFile.bmp"

измените это на

IDB_NEWFILE PNG "NewFile.png"

и сохраните файл. В следующий раз, когда вы посмотрите на ресурсы проекта, должен быть создан раздел 'PNG' (даже с заголовком комментария!)

Но, насколько я могу судить, png-файлы с прозрачностью либо не будут отображаться правильно, либо вызовут сбой при загрузке (например, в кнопку).

Другие вопросы по тегам