как сделать это эффективно? (vc6)
мне оно срочно надо...
Bitmap нарисовать или что-то более хитрое?
или
CPictureHolder::CreateFromBitmap( HBITMAP hbm, HPALETTE hpal = NULL );
Потом
void CPictureHolder::Render( CDC* pDC, const CRect& rcRender, const CRect& rcWBounds );
рисует на DC.
У меня есть одна функция которая этот массив изменяет (включая размер, но бит/пиксел = const = 24 а в onDraw мне надо этот массив на экран вывести, View наследовано от CSrollView (но это наверное не так важно). Вот. CBitmap еще заполнить надо...
когда делаю:
m_pBitmap = new CBitmap;
m_pBitmap->CreateBitmap(Image->width,Image->height,1,8,Image->m_Picture);
виснет нахрен (на каждый пиксел у меня было по 1 байту)
(Image->width) * (Image->height).
Проверь. Просто в том варианте, что ты написал в первом посте цвет не зависит от i - получаются вертикальные линии и размер массива = x (а для битмапа должен быть x*y). И виснет наверно из-за выхода за пределы массива.
+ немного инфы о битмапах под винды, может пригодится:
посмотри как у меня Fractal выводится
то : как в сети появишься так сразу и посмотрю
а что за прогу ты пишешь?
она типа картинки дожна вейвлет преобразованиям подвергать, а вообще это вопрос насущный. Я на машграфике, толку от лекций и семинаров мало, а проги писать приходится. Думаю до субботы оно спокойно подождет, попробую другую часть проги поделать. И инета нету...
Оставить комментарий
pulmo
вот такой кусок кода стоит у меня в onDraw для отображения картинки на экран,for (i = 0; i < y; i++)
for (i1 = 0; i1 < x; i1++)
{
tmpCol = Image->m_Picture[i1];
pDC->SetPixel(i1,i,RGB(tmpCol,tmpCol,tmpCol;
}
по своей ламерности я не знаю как сделать этот вывод быстрым (вроде через BitBlt или типа того, но не получается, еще как-то можно через CDib каков наиболее простой способ?