c言語を用いて画像の透明度をあげる方法を教えてください。
下プログラムの画像処理ができません。
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include "mybmpi.h"
/*メイン関数*/
int main(void)
{
int width, height;
int x, y;
BYTE *buffer_f; /*入力画像(前景)用メモリのポインタ*/
BYTE *buffer_b; /*入力画像(背景)用メモリのポインタ*/
BYTE *Rbuffer_f, *Gbuffer_f, *Bbuffer_f; /*入力(前景)用*/
BYTE *Rbuffer_b, *Gbuffer_b, *Bbuffer_b; /*入力(背景)用*/
BYTE *Rbuffer2, *Gbuffer2, *Bbuffer2; /*出力用*/
double tmp_pix;
double ratio=0.5; /*どの割合で混ぜるか ratio : 1-ratio */
/*前景画像ファイルを開く*/
buffer_f = LoadBitmap("front.bmp", &width, &height);
if(buffer_f==NULL)
{
/*ファイルが開けなかったので終了*/
return 0;
}
/*背景画像ファイルを開く*/
buffer_b = LoadBitmap("back.bmp", &width, &height);
if(buffer_b==NULL)
{
/*ファイルが開けなかったので終了*/
return 0;
}
/*RGBを色平面に分解*/
Rbuffer_f = (BYTE*)malloc( width*height ); /*メモリ確保*/
Gbuffer_f = (BYTE*)malloc( width*height );
Bbuffer_f = (BYTE*)malloc( width*height );
RGB2Plane(buffer_f, Rbuffer_f, Gbuffer_f, Bbuffer_f, width, height);
Rbuffer_b = (BYTE*)malloc( width*height ); /*メモリ確保*/
Gbuffer_b = (BYTE*)malloc( width*height );
Bbuffer_b = (BYTE*)malloc( width*height );
RGB2Plane(buffer_b, Rbuffer_b, Gbuffer_b, Bbuffer_b, width, height);
/*出力用*/
Rbuffer2 = (BYTE*)malloc( width*height ); /*メモリ確保*/
Gbuffer2 = (BYTE*)malloc( width*height );
Bbuffer2 = (BYTE*)malloc( width*height );
/*****************画像処理をここで行う********************/
for(y=0; y<height; y++){
for(x=0; x<width; x++){
/*この部分がわかりません*/
/*前景画像と背景画像を ratio : 1-ratio で合成する方法?*/
/*R,G,Bそれぞれについて同じ処理をする*/
}
}
/*******************ここまで******************************/
/*書き込み処理*/
Plane2RGB(buffer_f, Rbuffer2, Gbuffer2, Bbuffer2, width, height); /*bufferは入力のものを転用する*/
SaveBitmap("result.bmp", buffer_f, width, height);
/*メモリを解放する*/
free( buffer_f );
free( buffer_b );
free( Rbuffe
No.1ベストアンサー
- 回答日時:
Rbuffer2[y*width + x] = ratio*Rbuffer_f[y*width + x] + (1-ratio)*Rbuffer_b[y*width + x];
Gbuffer2[y*width + x] = ratio*Gbuffer_f[y*width + x] + (1-ratio)*Gbuffer_b[y*width + x];
Bbuffer2[y*width + x] = ratio*Bbuffer_f[y*width + x] + (1-ratio)*Bbuffer_b[y*width + x];
こんな感じで良いかと。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- その他(プログラミング・Web制作) 物理の斜方投射で目盛りに数値を入れたい 2 2023/05/27 06:32
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- その他(プログラミング・Web制作) 物理の斜方投射の目盛り線とx軸、y軸の追加について 3 2023/05/26 21:11
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リンクを知らせる手のマークが...
-
ボタンをセル内一杯に表示させ...
-
table で画像をピッタリとくっ...
-
htmlで画像を2個ずつ並べていき...
-
画像の横に文字をうまく配置で...
-
リンクを選択したときの青い枠...
-
auの携帯サイトで画像と画像の...
-
cssによる画像リンク枠の色変更
-
画像のサイズが変わらない
-
WordPressで画像に枠が入ってし...
-
機種依存文字、m2(平方メート...
-
c言語を用いて画像の透明度をあ...
-
HTMLは、シングルクォートかダ...
-
プルダウンの選択リストの中に...
-
html オンマウスで変化する画...
-
:hover imgとimg:hoverの違いは?
-
画像とテーブルの隙間をなくす。
-
cssでrowの中で高さの違う左右...
-
学校でポートフォリオサイトを...
-
WEBサイト制作について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リンクを知らせる手のマークが...
-
ボタンをセル内一杯に表示させ...
-
htmlで画像を2個ずつ並べていき...
-
機種依存文字、m2(平方メート...
-
HTMLタグのDL DT DDを使ってli...
-
画像の場合のみ、下線を消す方...
-
画像を縦に並べたら隙間ができ...
-
画像のサイズが変わらない
-
ポップアップウィンドウのサイ...
-
inputタグでサーバにデータを送...
-
HTMLでボタンを横に2つ並べる方法
-
【HTML/CSS】ボタンの枠が伸び...
-
リンクをつけた画像をクリック...
-
XML画像データををHTMLで簡単に...
-
レスポンシブ対応のHTML・CSS(...
-
UDP通信を使うチャットプログラ...
-
HTMLのIMAGEに。。
-
ホームページで画像を横に並べ...
-
画像をクリックして元に戻すには
-
リンクを選択したときの青い枠...
おすすめ情報