这个程序如何运行 C?

How does this program work C?

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

它应该将两个图像淡化为一个图像。

如果重写等式,您将得到:

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

这就是混合的工作原理。您正在指定函数参数 f 中应包含第一个图像的多少(共 255 个部分),第二个图像中将包含 255-f 个部分。