Как загружать и управлять изображениями более эффективно? - PullRequest
0 голосов
/ 15 сентября 2010

У меня есть интерфейсная программа для PND под управлением Windows CE (как 5.0, так и 6.0). Она использует большое количество изображений (в настоящее время в формате png) в качестве кнопок или для украшения.Изображения загружаются с SD-карты через new Bitmap(path);

. В настоящее время я использую фреймворк v3.5.

После загрузки OS + мое приложение израсходовало от 75 до 80%.памяти устройства.

Какие есть способы оптимизировать все эти файлы?

Ответы [ 2 ]

4 голосов
/ 15 сентября 2010

Единственными способами, которые мне приходят в голову, чтобы оптимизировать эти изображения, было бы изменение их размера до реального необходимого размера (например, большинство значков будут использоваться в формате 16x16), и если вы сохраняете также как растровое изображение, а не картуМожно также установить для используемой цветовой палитры размер, соответствующий точным потребностям данного изображения (например, изображение размером 16x16 имеет 256 пикселей. Поэтому вам нужна максимальная палитра из 256 цветов, но, возможно, вам также нужна собственная 16-цветная палитрадостаточно, потому что на вашем изображении только 16 разных цветов.)

В качестве второго подхода вы также можете проверить, возможно, вы загружали одно и то же изображение несколько раз.В этом случае вы должны загрузить его только один раз и использовать его несколько раз.

Последнее, что пришло мне в голову, относится к фоновым изображениям.Если у вас сплошной фон, вам не нужно его полноразмерное изображение.Просто возьмите растровое изображение 1x1 и растяните его до нужного размера.То же самое относится к градиентным фонам, но в этом случае у вас есть растровое изображение 1x2, которое будет растянуто.И последнее, но не менее важное, если у вас есть обычный шаблон, просто возьмите из него наименьший уникальный кирпич и используйте какой-нибудь механизм тайлов.

0 голосов
/ 15 сентября 2010

Если вы создаете ОС, возможно ли сохранить изображения как часть ОС?

В случае, если это возможно, и изображение полностью загружено в ОЗУ, вы можете загружать изображения только при необходимости отображать их и выгружать, когда они не нужны. Это также устранит некоторое время загрузки, поскольку доступ к ОЗУ происходит быстрее, чем доступ к SD-карте.

Еще одна хитрость с той же концепцией заключается в том, чтобы скопировать все изображения в ФС на основе ОЗУ и загрузить их только по мере необходимости - недостатком является то, что это необходимо делать после каждой перезагрузки.

...