bmp画像の左右反転がかなり考えたのですが、うまいこと行きません。
良ければご教授お願いしたいです。
下のコードが今書いている左右反転のコードです。
もしよろしければ色反転と上下反転も教えてくださると嬉しいです。
何卒よろしくお願い申し上げます。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <fcntl.h>
#define MAX_SIZE 256
int main(void)
{
char r[MAX_SIZE][MAX_SIZE];
char g[MAX_SIZE][MAX_SIZE];
char b[MAX_SIZE][MAX_SIZE];
int x, y; //ループ用の変数
int width=MAX_SIZE, height=MAX_SIZE; //画像の縦横サイズ
FILE *file_in; //ファイル読み込み
FILE *file_out; //ファイル書き込み
FILE * fp_in = NULL;//読み込み用ポインタ
FILE * fp_out = NULL;//書き込み用ポインタ
unsigned char hdr[54]; // ヘッダ格納用の配列
int i; // ループ用変数
char key = getchar();
//左右反転処理
if (key == 'w') {
fopen_s(&file_in, "bmp画像.bmp", "rb"); // 画像データ開く
for (i = 0; i < 54; i++) hdr = fgetc(file_in);// ヘッダ情報の読み込み
for (y = 0; y < height; y++) { //画像データ読み込み
for (x = 0; x < width; x++) {
fread(&b[y][x], sizeof(b[y][x]), 1, file_in);
fread(&g[y][x], sizeof(g[y][x]), 1, file_in);
fread(&r[y][x], sizeof(r[y][x]), 1, file_in);
}
}
fopen_s(&file_out, "反転.bmp", "wb");
// ヘッダー部
fwrite(hdr, sizeof(hdr), 1, file_out);
// データ部
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
fwrite(&b[y][width - x], 1, 1, file_out);
fwrite(&g[y][width - x], 1, 1, file_out);
fwrite(&r[y][width - x], 1, 1, file_out);
}
}
fclose(file_out);
fclose(file_in);
printf("画像の書き込みが終わりました\n");
}
//fclose(fp_in); // ヘッダファイルを閉じる
_getch();
return 0;
}
C言語 BMP画像反転、色反転
ページ移動
- 掲示板
- ↳ C言語何でも質問掲示板
- ↳ 四聖龍神録2 掲示板
- ↳ 四聖龍神録Plus掲示板
- ↳ AerobeatPlus掲示板
- 副次コンテンツ
- ↳ 作品お披露目掲示板
- 登録ユーザー用コンテンツ
- ↳ 登録ユーザー掲示板
- コミュニティフォーラム
- ↳ みんなでソースコードをレビューしよう
- ↳ 3DCGソフト使用者のコミュ
- ↳ Win32 API
- ↳ 組み込み系スクリプト言語をつかってみよう
- ↳ 東方好きあつまれ
- ↳ C言語誰でも交流サイト - mixC++ -
- ↳ ビット論理演算が好きな人♪
- ↳ 企画関係について語ろうか
- ↳ エフェクトアニメーション
- ↳ 学生で集まってみる?
- ↳ DirectX SDK
- ↳ マイコン/FPGA電子工作部
- ↳ PHPに可能性を無限大
- ↳ Code Golf を楽しもう!
- ↳ 作曲している人で話し合ってみませんか♪
- ↳ ソフト制作コミュ
- ↳ El Shaddai - エルシャダイ -
- ↳ PSPプログラミング
- ↳ CINEMA 4D
- ↳ お絵かきコミュニティ
- ↳ 素材作ってみたよ!
- ↳ OpenGL
- ↳ OpenCV
- ↳ RPGを作りたい!
- ↳ ポケモン好き集まれ
- ↳ ならば .NETをやらないか?
- ↳ 1から勉強してみないか?
- ↳ 赤髪超大好き♪
- ↳ ノースリーブ
- ↳ 伝説の戦士プリキュアを語ろう
- ↳ コンテストコミュニティー
- ↳ DXライブラリ何でも質問コミュニティ
- ↳ 四聖龍神録コミュニティ
- ↳ HTML/CSS/JavaScript
- ↳ 生放送コミュ
- ↳ サンプルを共有するコミュニティ
- ↳ おすすめマーカー
- ↳ minecraft
- ↳ Xtal Language
- ↳ マインクラフト
- ↳ 数学やらないか?
- ↳ 習ったことをプログラムで表してみよう!
- ↳ 小物アプリ作成や ら な い か
- ↳ AIの可能性は無限大
- ↳ 自作OS製作(GUI入門)[雑談]
- ↳ リレーコーディング
- ↳ Unix/Linux
- ↳ 競技プログラミングごっこやろうぜ
- ↳ 夏休みプログラミングイベント2012 in MixC++
- ↳ D言語を広めよう
- ↳ Scala布教の会
- ↳ 3Dゲーム作ろうぜ!モデリング~プログラミングまで
- ↳ 言語に興味を持ったら是非!!
- ↳ レイヴンズ・ネスト
- ↳ C言語とC++言語のコミュニティー!
- ↳ 放課後ふぁんたじあ
- ↳ マイ サンプルズ
- ↳ ガンヲタの館
- ↳ 歯科機器
- ↳ 歯科機器情報
- ↳ 52歳からはじめるC言語
- mixC++更新・仕様変更履歴