課題内容は8bit_256_256.imgのテスト画像から任意のコントラストと回転中心の画像をサイズを512*512に変更して出力するプログラムです。
8bit_256_256.imgのテスト画像を複製して256*256で出力することはできたのですが、同じようにして512*512で出力するやりかたがわからないです。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
unsigned char* InImage; //入力画像データの配列の宣言
unsigned char* OutImage; //出力画像データの配列宣言
char InFile[100], OutFile[100]; //入出力画像ファイル名の宣言
int i, Xsize, Ysize;
FILE* fp; // fopen関数で必要な入力バッファの宣言
printf("\n入力する画像のファイル名を入力してください)\t");
gets_s(InFile, sizeof(InFile));
printf("\n出力する画像のファイル名を入力してください)\t");
gets_s(OutFile, sizeof(OutFile));
Xsize = 256; Ysize = 256;
InImage = new unsigned char[Xsize * Ysize];
OutImage = new unsigned char[Xsize * Ysize];
//配列InImage,OutImageのメモリ領域を動的に保存
if ((fp = fopen(InFile, "rb")) == NULL) {
printf("Could not open filename %s \n", InFile);
exit(0);
}
fread(InImage, sizeof(unsigned char), Xsize * Ysize, fp);
fclose(fp);
for (i = 0; i < Xsize * Ysize; i++) {
OutImage[i] = InImage[i]; //InImageの中身OutImageに複製
}
if ((fp = fopen(OutFile, "wb")) == NULL) {
printf("Could not open filename %s \n", OutFile);
exit(0);
}
fwrite(OutImage, sizeof(unsigned char), Xsize * Ysize, fp);
fclose(fp);
printf("(123,123) = %d\n", OutImage[123 * Xsize + 123]);
printf("(87,144) = %d\n", OutImage[144 * Xsize + 87]);
delete[]InImage;
delete[]OutImage;
return 0;
}