2015-11-26 9 views
-2
void fade(ImagenBMP *imagen1, ImagenBMP *imagen2, int f) { 
float v = (float)f/255; 
for (int i = 0; i < imagen1->tamanyo; i++) { 
    imagen1->datos[i] = (imagen1->datos[i] - imagen2->datos[i])*v + imagen2->datos[i]; 
}}; //end of fade 

Это означает, что вы должны затушить два изображения в одном.Как работает эта программа C?

ответ

1

Если перепишем уравнение, вы в конечном итоге с:

imagen1->datos[i] = v*imagen1->datos[i] + (1-v)*imagen2->datos[i]; 

Это как примесные работает. Вы указываете, какая часть первого изображения (из 255 частей) должна быть включена в параметр функции. f, 255-f части будут включены со второго изображения.

+0

Вы правы, у меня было следующее уравнение: Pixel_result = Pixel_imgA * fade + Pixel_imgB * (1 - fade); но в тот момент я не мог видеть связь с кодом. Теперь я вижу это красно, спасибо помощнику. – danibeam