Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> масштабирование CImage 
:(
    Опции темы
Leopard25
Дата 3.7.2004, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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);


Я что-то нетак делаю ?
--------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций )
PM MAIL ICQ   Вверх
chipset
Дата 3.7.2004, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Цитата
void CMyPaintView::OnPaint()
{
    CDC *view =
new CDC;
    CPaintDC dc(
this); // device context for painting
   
image.Load("image.bmp"); //Загрузка изображения
   
SetStretchBltMode(dc.GetSafeHdc(),HALFTONE);//Установка "масштабирования
   
StretchBlt
        (dc.GetSafeHdc(),
//Dc
       
0,0,200 ,200,//Масштабирование
       
image.GetDC(),//Source
       
0,0,image.GetWidth(),image.GetHeight()//Получение исх
        //одного изображения
       
,SRCCOPY);//Установка параметра копирования
    // TODO: Add your message handler code here
    // Do not call CScrollView::OnPaint() for painting messages
}

Кстати... CImage у меня обьявлен в главном модуле так что здесь его не видно...smile.gif


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
chipset
Дата 3.7.2004, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



А суть в том что я не пользуюсь .Draw а получаю хэндел CImage'а и из него уже копирую обычным средствами..


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Leopard25
Дата 4.7.2004, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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);//Установка параметра копирования
}
--------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций )
PM MAIL ICQ   Вверх
chipset
Дата 4.7.2004, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Это пока лечу только release модом..


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Leopard25
Дата 4.7.2004, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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);

--------------------
Обдумай, верно ли и возможно ли то, что ты обещаешь, ибо обещание - есть долг. ( Конфуций )
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1313 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.