// 画像処理5:画像拡大縮小 void imagels( int ls, Image image) { int x, y, k; for(y = 0; y < (image->height)/ls; y++){ for (x = 0; x < (image->width)/ls ; x++){ // 左上の画像を作る // 方法としては、画像全体をls[pixel]だけスキップしながら色をコピーする image->pdata[y][x][2] = image->pdata[y*ls][x*ls][2]; // Rの値を書き込む image->pdata[y][x][1] = image->pdata[y*ls][x*ls][1]; // Gの値を書き込む image->pdata[y][x][0] = image->pdata[y*ls][x*ls][0]; // Bの値を書き込む } } //左上の画像を垂直方向にコピーする for(y = 0; y < (image->height)/ls; y++){ for (x = 0; x < (image->width)/ls ; x++){ for(k = 1; kpdata[y][x+k*(image->width)/ls][2] = image->pdata[y][x][2]; // Rの値を書き込む image->pdata[y][x+k*(image->width)/ls][1] = image->pdata[y][x][1]; // Gの値を書き込む image->pdata[y][x+k*(image->width)/ls][0] = image->pdata[y][x][0]; // Bの値を書き込む } } } // 上領域の画像を下方向にコピーする for(y = 0; y < (image->height)/ls; y++){ for (x = 0; x < image->width ; x++){ for(k = 1; kpdata[y+k*(image->height)/ls][x][2] = image->pdata[y][x][2]; // Rの値を書き込む image->pdata[y+k*(image->height)/ls][x][1] = image->pdata[y][x][1]; // Gの値を書き込む image->pdata[y+k*(image->height)/ls][x][0] = image->pdata[y][x][0]; // Bの値を書き込む } } } }