lenna.bmp output1.bmp output2.bmp
코드를 개 귀찮아서 그지 같이 짜긴 했지만 아무튼 재미져
앙 꿀잼띠~
이제 시작이라 더 기분좋넹
색상 변화하는 코드 올리라는데 못 올려서 여기다 올림
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
int main() {
BITMAPFILEHEADER hf;
BITMAPINFOHEADER hInfo;
RGBQUAD hRGB[256];
FILE* fp;
fp = fopen("lenna.bmp", "rb");
if (fp == NULL) return 1;
fread(&hf, sizeof(BITMAPFILEHEADER), 1, fp);
fread(&hInfo, sizeof(BITMAPINFOHEADER), 1, fp);
fread(hRGB, sizeof(RGBQUAD), 256, fp);
int ImgSize = hInfo.biWidth * hInfo.biHeight;
BYTE* Image = (BYTE*)malloc(ImgSize);
BYTE* Output = (BYTE*)malloc(ImgSize);
fread(Image, sizeof(BYTE), ImgSize, fp);
for (int i = 0; i < ImgSize; i++){
Output[i] = Image[i] - 2 ;
if (Output[i] < 0) {
Output[i] = 0;
}
}
FILE* fwriteptr = fopen("output1.bmp", "wb");
fwrite(&hf, sizeof(BYTE), sizeof(BITMAPFILEHEADER), fwriteptr);
fwrite(&hInfo, sizeof(BYTE), sizeof(BITMAPINFOHEADER), fwriteptr);
fwrite(hRGB, sizeof(RGBQUAD), 256, fwriteptr);
fwrite(Output, sizeof(BYTE), ImgSize, fwriteptr);
fclose(fwriteptr);
free(Image);
free(Output);
fp = fopen("lenna.bmp", "rb");
fread(&hf, sizeof(BITMAPFILEHEADER), 1, fp);
fread(&hInfo, sizeof(BITMAPINFOHEADER), 1, fp);
fread(hRGB, sizeof(RGBQUAD), 256, fp);
ImgSize = hInfo.biWidth * hInfo.biHeight;
if (fp == NULL) return 1;
FILE* fwriteptr2 = fopen("output2.bmp", "wb");
Image = (BYTE*)malloc(ImgSize);
Output = (BYTE*)malloc(ImgSize);
fread(Image, sizeof(BYTE), ImgSize, fp);
for (int i = 0; i < ImgSize; i++) {
Output[i] = Image[i] + 2;
if (Output[i] > 255) {
Output[i] = 255;
}
}
fwrite(&hf, sizeof(BYTE), sizeof(BITMAPFILEHEADER), fwriteptr2);
fwrite(&hInfo, sizeof(BYTE), sizeof(BITMAPINFOHEADER), fwriteptr2);
fwrite(hRGB, sizeof(RGBQUAD), 256, fwriteptr2);
fwrite(Output, sizeof(BYTE), ImgSize, fwriteptr2);
fclose(fwriteptr2);
free(Image);
free(Output);
fclose(fp);
return 0;
}
|
cs |