получение изображения CImage - PullRequest
1 голос
/ 14 ноября 2010

Я недавно начал изучать, как использовать MFC в Visual Studio. Моя программа использует много маленьких 32x32 пикселей изображений, которые для удобства собраны в один большой .png. Я понял, как загрузить большое изображение в CImage и отобразить его на CClientDC, но я не могу найти ничего, что помогло бы мне разделить изображение на эти меньшие изображения размером 32x32.

Кроме того, я могу получить пиксельные данные для большого изображения, используя DevIL, но я не могу найти ничего, что создает CImage из пиксельных данных.

Поскольку я только начал изучать MFC несколько дней назад, я не слишком хорошо знаю API и, вероятно, упускаю что-то очевидное. Кто-нибудь может указать мне правильное направление?

Ответы [ 2 ]

2 голосов
/ 14 ноября 2010

Вам нужно будет использовать перегрузку CImage :: Draw (), которая позволяет вам указать исходный прямоугольник.Так что вы можете обрезать изображение, которое вы хотите нарисовать из оригинала.Есть два кандидата, например Draw (HDC hDestDC, const RECT & rectDest, const RECT & rectSrc).Другой - первый, перечисленный на этой странице документа .

0 голосов
/ 14 ноября 2010

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

Когда вы начнете рисовать значок, передайте его смещение и размер функции bitblt, а не размерам всего изображения.

Если вы хотите сохранить изображение в видерастровое изображение, создайте DC памяти для целевого растрового изображения и нарисуйте его.

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