coding Shift_JIS; // 文字コードの明示(文字化け予防) import Graphics; // 画像処理に必要なライブラリの読み込み // ユーザーに画像ファイルを選択してもらい、それを開いてグラフィックスデータを生成 string inputFilePath = choose("拡大・縮小したいファイルを選んでください。", "./"); int inputGraphics = newGraphics(inputFilePath); // 元の画像の幅と高さを取得(出力画像の幅と高さを入力する際の初期値に使用) int inputWidth = getGraphicsWidth(inputGraphics); int inputHeight = getGraphicsHeight(inputGraphics); // 出力画像の幅をユーザーに入力してもらう int outputWidth = input("拡大・縮小後の画像の幅(ピクセル数)を入力:", inputWidth); // 高さの設定モードの選択肢 const string HEIGHT_MODE_MANUAL = "高さの値を手動で設定"; const string HEIGHT_MODE_AUTO = "縦横比が同じになる高さに設定"; // 高さの設定モードをユーザーに選択してもらう string heightMode = select("- 高さの設定モードを選択 -", HEIGHT_MODE_MANUAL, HEIGHT_MODE_AUTO); while (heightMode == "- 高さの設定モードを選択 -") { heightMode = select("- 高さの設定モードを選択 -", HEIGHT_MODE_MANUAL, HEIGHT_MODE_AUTO); } // 設定モードに応じて高さを求める int outputHeight = -1; if (heightMode == HEIGHT_MODE_MANUAL) { outputHeight = input("拡大・縮小後の画像の高さ(ピクセル数)を入力:", inputHeight); } else if (heightMode == HEIGHT_MODE_AUTO) { float magnification = (float)outputWidth / (float)inputWidth; // 拡大率 outputHeight = (int)(inputHeight * magnification); } // 保存画像形式などをユーザーに指定してもらう string saveFormat = select("- 保存する画像形式を選択 -", "PNG", "JPEG"); while (saveFormat == "- 保存する画像形式を選択 -") { saveFormat = select("- 保存する画像形式を選択 -", "PNG", "JPEG"); } float quality = 100.0; if (saveFormat == "JPEG") { quality = input("画質(%)を選択(0.0 〜 100.0)", "100.0"); } // inputGraphicsを拡大・縮小した、新しいグラフィックスデータを生成 int outputGraphics = newGraphics(inputGraphics, outputWidth, outputHeight, true); // trueは滑らかにするための指定 // 別のファイル名(入力ファイル名+_scale.png/jpg)をつけて保存 string outputFilePath = inputFilePath + "_scale"; if (saveFormat == "PNG") { outputFilePath += ".png"; } else (saveFormat == "JPEG") { outputFilePath += ".jpg"; } exportGraphics(outputGraphics, outputFilePath, saveFormat, quality); // ここでファイルに保存 popup("変換しました。保存ファイル: " + outputFilePath); // 完了メッセージをユーザーに表示 // リソースを破棄してプログラム終了 deleteGraphics(inputGraphics); deleteGraphics(outputGraphics); exit();