//警告回避
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include "image.h"	//自作の画像処理ヘッダの読み込み


//mainが最初に呼び出される
int main()
{
	// 型　変数
	Image image;		//入力画像

	// モード選択
	int	select = 0;

	int	r,g,b;

	// 入出力の文字列の指定
	char filename_input[100];
	char filename_output[100];

	//入力画像の名前を入力
	printf("処理する画像ファイル名(.bmp)：");
	scanf("%s",&filename_input); printf("\n");
	
	// Bitmapファイルを関数で読み込む
	image = loadImage(filename_input);

	// ファイルの読み込みに失敗したら終了する
	if(image == NULL)
	{
		printf("ファイルの読み込みに失敗しました。\n"); return 0;
	}

	// 処理選択
	printf("処理する番号を入力してください\n");
	printf("1. 名前を変えて出力\n");
	printf("2．RGB値を入力して塗りつぶす\n");
	printf("3. グレースケール処理\n");
	printf("4. ネガポジ反転処理\n");

	printf("実行する番号："); scanf("%d",&select); printf("\n");

	switch(select){
		// 処理をしないで出力
		case 1 :

			break;

		// RGB値を指定して塗りつぶす
		case 2 :
			printf("RGB値を入力して塗りつぶす\n");
			printf("RGBの値を入力してください。\n");
			printf("R："); scanf("%d",&r);
			printf("G："); scanf("%d",&g);
			printf("B："); scanf("%d",&b); printf("\n");

			fillImage(image,r,g,b);

			break;

		// グレースケール処理
		case 3 :
			printf("入力画像をグレースケール処理します。\n");
			
			grayscale(image);

			break;

		// ネガポジ反転処理
		case 4 :
			printf("入力画像をネガポジ反転処理します。\n");
			
			color_reversal(image);

			break;

	}

	printf("出力させる画像ファイル名(.bmp)：");
	scanf("%s",&filename_output); printf("\n");
	saveImage(image,filename_output);

	deleteImage(image);
	
	return 0;
}