Как я могу добавить изображения в настольное приложение, не увеличивая размер исполняемого файла слишком сильно? - PullRequest
4 голосов
/ 06 января 2010

Я создаю настольное приложение и время от времени добавляю изображения в обозреватель решений. Когда я «собираю» приложение, я замечаю, что размер файла .exe увеличивается. Если я добавлю изображение размером 40 КБ, .exe увеличится на 40 КБ.

В общем, мое приложение в настоящее время 12 МБ, и я думаю, что это слишком много для людей, чтобы загрузить.

Есть ли способ уменьшить размер .exe, другими словами, добавить изображения в мое приложение с минимальным влиянием на размер?

Ответы [ 3 ]

4 голосов
/ 06 января 2010

Вы можете экспортировать изображения, отправляя их в виде отдельных файлов или загружая их из своего приложения с веб-сервера. WPF с радостью использует HTTP или URL файловой системы в качестве источника для элемента Image.

Но это только снимает проблему: ваш первоначальный EXE-файл меньше, но теперь есть также куча других файлов для скачивания. К чему это приводит: если у вас есть 12 МБ изображений, у вас есть 12 МБ изображений, и эти 12 МБ должны добраться до компьютера пользователя как-то !

Если вас беспокоит размер приложения 12 МБ, вы можете попытаться уменьшить размер файла - меньшее разрешение, другой формат файла (например, JPG вместо BMP) и т. Д. Или, если пользователь не собирается чтобы все файлы были нужны, приложение может загружать их по требованию (но учтите, что это может привести к задержкам или ошибкам, если пользователь не в сети).

С другой стороны, по современным стандартам, 12 МБ на самом деле не так уж и много для приложения игрового типа (как я понимаю, ваше). Так что, если вы не нацелены на рынок, где многие пользователи все еще используют модем или другие медленные или плохие соединения, это может быть не так уж и сложно.

0 голосов
/ 06 января 2010

Я только что сделал быструю проверку размера файлов компиляции exe. Если вы добавляете файлы в обозреватель решений в качестве ресурса, эти изображения компилируются непосредственно в исполняемый файл. Однако, если вы просто добавите файл в обозреватель решений и дадите ему «действие сборки» «Conten» и «копирование в выходной каталог» «copy if newer», то файл не является частью exe, но вторичный файл рядом с exe.

Это означает, что изображение доступно для вашего exe-файла, но не является его частью.

Это может быть то, что вы ищете, так как позволяет легко изменять изображения, используемые в приложении [просто изменив их в папке решения]

0 голосов
/ 06 января 2010

Это действительно зависит от ваших изображений, но ... если они чем-то похожи друг на друга, вы можете сжать их, а затем развернуть при установке или при первом запуске приложения. В любом случае, вы можете попробовать молнию, чтобы посмотреть, что произойдет. Если вы можете уменьшить изображения на 20% или более, то архивирование может стоить того. (Или вы можете выбрать изображения, которые специально предназначены, чтобы помочь в архивировании.)

Кроме того, если ваши изображения просты, вы можете попробовать формат GIF. Это очень хорошо для сжатия изображений с линиями и более простыми полями цвета (например, не фотографические изображения ... больше как аниме)

Мне также нравится ответ Итоулсона. + 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...