| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Как подключить CImage к MFC? |
| Автор: torero 11.4.2008, 08:14 |
| У меня такая задача: есть файл-картинка file.jpg, её нужно вывести на экран в окне "вид". В "поиске" все советуют использовать CImage, но он из класса ATL, подключаю библиотеку #include "atlimage" и если версия MFC 7.0, то класс CImage будет работать. У меня видимо меньше 7.0, поэтому транслятор даёт сообщение No declare CImage. Как ещё можно подключить CImage, или есть другой способ работы с файлами .jpg? Я собирался сделать так: CImage image; image.Load("file.jpg"); // читаю файл .jpg image.Save("file.bmp"); // перевожу его в файл .bmp HBITMAP hbmImage=(HBITMAP)::LoadImage(0,"file.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE); ASSERT(NULL!=hbmImage); и дальше вывожу на экран файл .bmp , будет так работать или нет? |
| Автор: Andrey44 11.4.2008, 08:16 |
| http://www.rsdn.ru/?article/gdi/gdiplus1.xml |
| Автор: torero 12.4.2008, 08:59 |
| Если по другому нельзя, то это надолго. К тому же, пример дан для WINAPI. Спасибо за совет. |
| Автор: Rapalex 12.4.2008, 19:34 | ||
| torero, Если ты используеш только MFC и тебе не нужно GDI+ (как сказал Andrey44) то и не надо его использовать. Можно использовать то самый CImage, просто так:
|
| Автор: torero 13.4.2008, 08:40 |
| Но я написал в своём вопросе, что у меня так просто не получается. Транслятор даёт ошибку No declare CImage . Наверно это потому, что класс CImage относится к платформе ATL. Что делать? Искать новый VC++ 2008, или можно к MFC подключить ATL, или ещё что? У меня CD c Visual C++ 6.0 выпущен в 2002 году, но и тогда вроде бы уже работали с файлами .jpg |
| Автор: Rapalex 13.4.2008, 20:49 |
| У тебя какая студия? Инклюд пропиши. |
| Автор: torero 14.4.2008, 12:38 |
| Я добавлял #include "atlimage" (или нужно другой инклюд), транслятор пишет, что не может открыть такую библиотеку. У меня не Studio, просто Visual C++ 6.0 Вообще то у меня есть CD со студией, но диск оказался с ошибками и не инсталлируется. Может быть оттуда что-то скопировать? |
| Автор: Rapalex 14.4.2008, 21:25 | ||||
| torero, определись с терминами, есть компилятор и он иклюдит файлы. Есть линковщик, он линкует библиотеки (либки). а как понять я честно говоря затрудняюсь. ЗЫ, пользуйся тегом кода.
|
| Автор: torero 16.4.2008, 11:24 |
| На определение CImage image компилятор выводит сообщение: error C2501: 'CImage': missing storage-klass or type specifiers На включение #include "atlimage.h" или #include <atlimage.h> тоже компилятор даёт вторую ошибку fatal error C1083: Cannot open include file: 'atlimage.h': No such file or directory Если причина в моих устаревших MFC или SDK, то можно принять совет статьи, ссылку на которую дал Andrey44. Там советуют скачать из инета "новый платформ SDK". Допустим я его скачаю, но куда и как его потом подключить? В статье об этом ничего не говорится. Можете дать совет или ссылку на подробные объяснения, если они есть? |
| Автор: Rapalex 16.4.2008, 11:31 |
| Автор: Andrey44 16.4.2008, 11:31 |
| У тебя студия какая? |
| Автор: torero 17.4.2008, 13:10 |
| На CDcнаписано: Microsoft Visual C++ 6.0 Microsoft Visual Studio Service Pack 5 |
| Автор: Rififi 17.4.2008, 13:29 |
| torero, слишком старый компилятор. В штатной ATL версии 3.0 такого класса не существовало. Он появился только начиная с ATL 7.x (идущей в составе компилятора VC 7.x) |
| Автор: torero 18.4.2008, 14:35 |
| Спасибо, значит нужно доставать новый VC++200N . |
| Автор: 42na 29.5.2008, 13:05 |
| может подскажет кто как можно повернуть картинку (CImage) на 90 градусов |
| Автор: Andrey44 30.5.2008, 07:58 |
| Могу только пример показать с GdiPlus::Image если надо 42na, |
| Автор: eugeniy 14.5.2010, 00:59 | ||
| заюзал класс CImage вот кусок кода для загрузки картинки и прорисовки в picture control на диалоге:
только вот картинку он в объект image загружает, а почему то саму картинку не прорисовывает, только чертит рамку по размеру фото. Что тут не так?( |