// 画像処理9:画像の上下反転 void vreversing( Image image) { int x, y, k; Image bufimage; //重複して処理しないようオリジナル画像のコピーを用意する bufimage = createImage(image->height, image->width); //画像のメモリ確保・初期化 for(y = 0; y < image->height; y++){ for(x = 0; x < image->width; x++){ for(k = 0; k < 3; k++) { bufimage->pdata[y][x][k] = image->pdata[y][x][k]; //入力画像をコピーする } } } //上下反転処理:Y座標を反対からコピーすることで反転する for(y = 0; y < image->height; y++){ for(x = 0; x < image->width; x++){ for(k = 0; k < 3; k++) { image->pdata[y][x][k] = bufimage->pdata[image->height - y - 1][x][k]; } } } deleteImage(bufimage); //処理用画像のメモリを解放 }