![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Leopard25 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 17.4.2004 Репутация: нет Всего: нет |
В m_jpgImage загружаю изображение и вывожу его на экран в OnDraw.
Если вывожу 1:1 всё нормально , а если меняю размеры оно искажается. CImage m_jpgImage; // меняю размеры int Height = 300; int cor = (m_jpgImage.GetHeight()*100)/(Height); int Weight = (int)((m_jpgImage.GetWidth()*100)/cor); m_jpgImage.Draw(pDC->m_hDC,550,50,Weight,Height); Я что-то нетак делаю ? --------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций ) |
|||
|
||||
| chipset |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Кстати... CImage у меня обьявлен в главном модуле так что здесь его не видно... --------------------
|
||||
|
|||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
А суть в том что я не пользуюсь .Draw а получаю хэндел CImage'а и из него уже копирую обычным средствами..
--------------------
|
|||
|
||||
| Leopard25 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 17.4.2004 Репутация: нет Всего: нет |
Теперь первая картинка показывается нормально , а при переключении на другую происходит ошибка : Debug Assertion Failed! .................. ..................altimage.h Line: 574 Expression m_hDC==0 загружаю картинку: m_jpgImage.Destroy(); m_jpgImage.Load(m_strPathPict); void CPicBackGroundView::OnDraw(CDC* pDC) { // вывод изображения SetStretchBltMode(pDC->GetSafeHdc(),HALFTONE); StretchBlt (pDC->GetSafeHdc(), //Dc 550,50,200 ,200,//Масштабирование m_jpgImage.GetDC(),//Source 0,0,m_jpgImage.GetWidth(),m_jpgImage.GetHeight() ,SRCCOPY);//Установка параметра копирования } --------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций ) |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
Это пока лечу только release модом..
--------------------
|
|||
|
||||
| Leopard25 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 17.4.2004 Репутация: нет Всего: нет |
Я разобрался .
Так работает : int Height = 300; int cor = (m_jpgImage.GetHeight()*100)/(Height); int Weight = (int)((m_jpgImage.GetWidth()*100)/cor); CDC dcMem2; dcMem2.CreateCompatibleDC(pDC); CBitmap bmp; bmp.CreateCompatibleBitmap(pDC,m_jpgImage.GetWidth(),m_jpgImage.GetHeight()); dcMem2.SelectObject(&bmp); dcMem2.PatBlt(0,0,m_jpgImage.GetWidth(),m_jpgImage.GetHeight(),WHITENESS); m_jpgImage.BitBlt(dcMem2,0,0,m_jpgImage.GetWidth(),m_jpgImage.GetHeight() ,0,0,SRCCOPY); SetStretchBltMode(pDC->GetSafeHdc(),HALFTONE);//Установка "масштабирования StretchBlt (pDC->GetSafeHdc(), //Dc 550,50, Weight,Height,//Масштабирование dcMem2.m_hDC,//Source 0,0,m_jpgImage.GetWidth(),m_jpgImage.GetHeight()//Получение исх //одного изображения ,SRCCOPY);//Установка параметра копирования dcMem2.PatBlt(0,0,m_jpgImage.GetWidth(),m_jpgImage.GetHeight(),WHITENESS); --------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций ) |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |