Текущий архив: 2003.10.02;
Скачать: CL | DM;
Вниз
Фильтры Найти похожие ветки
← →
GhostDog (2003-09-11 20:42) [0]Народ помогите чайнику !
Расскажите что такое фильтры из раздела графики и где о них можно почитать и как с ними работать ? (сам ни где не мог найти)
Мне нужно написать прогу где фильтр циклически сдвигает компоненты цвета (R - G - B - R....)
Спасибо !!!
← →
Zergling (2003-09-12 06:08) [1]Фень Юань. "Программирование графики в Windows" + CD
← →
GhostDog (2003-09-12 07:39) [2]И где мне это теперь искать ?
а в инете есть что нибудь ?
← →
MBo (2003-09-12 08:22) [3]>фильтр циклически сдвигает компоненты цвета (R - G - B - R....
фильтром обычно называют некоторое преобразование пиксела по значениям соседних (свертка с матрицей 3х3 или другого размера)
У тебя же, как я понял, элементарное преобразование цветов.
← →
GhostDog (2003-09-12 17:27) [4]Знаешь эьо иоя лаб\раб а какое это преобразование я сам не знаю
все что есть я написал !!
Вот я и хочу узнать как с фильтрами работать ???
← →
pasha_golub (2003-09-12 18:04) [5]2Zergling
Где взять в инете? Если есть, плиз, как-нибудь сообщи, а
← →
MBo (2003-09-12 18:06) [6]>pasha_golub
Нету ее в инете - тыщу страниц сканировать вряд ли кто станет...
Рекомендую приобрести.
← →
GhostDog (2003-09-14 17:06) [7]Народ здесь че, ни-кто не знает как с фильтрами работать ???
Вы ведь вроде мастера ? или нет ?
← →
Думкин (2003-09-14 17:19) [8]Тебе уже сказали, что это не фильтр.
← →
GhostDog (2003-09-14 19:42) [9]Слухай а что это такое ? Если профессор говорит что это фильтр
дак уж наверное это фильтр, а не что то там...
А вот то что здест с фильтрами работать не умеют это ФАКТ !!!
← →
Zergling (2003-09-15 07:09) [10]По твоему посту скорей всего преобразование яркости/цвета
Как выделить нужный тебе цвет думаю догадаешся
Function Brightness(OriginalColor:TColor;Transp:Byte):TColor;
Var R,G,B:Integer; // Текущий цвет
nR,nG,nB:Integer; // Новый цвет
Begin
R:=(OriginalColor and $ff) shr 0;
G:=(OriginalColor and $ff00) shr 8;
B:=(OriginalColor and $ff0000) shr 16;
// Яркость
{
nR:=R-Change2;
ng:=G-Change3;
nb:=B-Change4;
}
// Прозрачность
nR :=Round(0/100*Transp+((r/100)*(100-Transp)));
nG :=Round(255/100*Transp+((g/100)*(100-Transp)));
nB :=Round(0/100*Transp+((b/100)*(100-Transp)));
// Ограничения по выбору цвета
if nR>$ff then nR:=$ff;
if nG>$ff then nG:=$ff;
if nB>$ff then nB:=$ff;
if nR<0 then nR:=0;
if nG<0 then nG:=0;
if nB<0 then nB:=0;
Brightness:=(nB shl 16)+(nG shl 8)+(nR shl 0);
End;
По фильтрам смотри внимательней MBo © (12.09.03 08:22) [3] и делай вывод!
void TestFilters(HDC hDC, int x, int y, int w, int h, KImage & dib, int nFilterID[], int scale)
{
BYTE * pTemp = new BYTE[dib.m_nImageSize];
memcpy(pTemp, dib.GetBits(), dib.m_nImageSize); //save pixel array
SetBkMode(hDC, TRANSPARENT);
SetTextColor(hDC, 0); // RGB(0xFF, 0xFF, 0xFF));
for (int i=0; i<4; i++)
{
int xx = x + (w*scale + 120) * ( i % 2);
int yy = y + (h*scale + 10) * ( i / 2);
int filter = nFilterID[i];
if ( StockFilters[filter] )
{
dib.Convolution(StockFilters[filter]);
StockFilters[filter]->DescribeFilter(hDC, xx + w*scale + 5, yy + 5);
}
StretchDIBits(hDC, xx, yy,
w*scale, h*scale, 0, 0, w, h, dib.GetBits(), dib.GetBMI(), DIB_RGB_COLORS, SRCCOPY);
memcpy(dib.GetBits(), pTemp, dib.m_nImageSize); // restore pixel array
}
delete pTemp;
}
****
case IDM_VIEW_FILTERS1:
{
int id[] = { 0, 1, 2, 3 };
TestFilters(hDC, GAP, GAP, w, h, m_DIB, id, 3);
}
break;
case IDM_VIEW_FILTERS2:
{
int id[] = { 0, 4, 5, 6 };
TestFilters(hDC, GAP, GAP, w, h, m_DIB, id, 1);
}
break;
case IDM_VIEW_FILTERS3:
{
int id[] = { 0, 7, 8, 9 };
TestFilters(hDC, GAP, GAP, w, h, m_DIB, id, 2);
}
break;
← →
Думкин (2003-09-15 07:16) [11]> GhostDog © (14.09.03 19:42)
Ты это МВо скажи. Гроб с музыкой заказывать?
А если профессор - то у него и консультируйся.
← →
GhostDog (2003-09-19 16:47) [12]Zergling Спасибо помог, не то что этот выскочка Думник !!
Страницы: 1 вся ветка
Текущий архив: 2003.10.02;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.01 c