画像の明るさを調整するサンプルコード
画像の明るさを調整するサンプルです。ソースコードはDelphi5で作成しましたがその他の言語でも流用できるかと思います。
画像処理の結果
明るさの調整をすると下図のようになります。


ソースコード
[EffectBass.pas]
//Bass Unit unit EffectBass; interface uses Windows,SysUtils, Classes, Graphics; type //24bitアクセス用ポインタ pRGBarray = ^TRGBarray; TRGBarray = array[0..0] of TRGBTriple; //None リテラル type //24bitアクセス用ダブルポインタ PPBits = ^TPBits; TPBits = array[0..0] of pRGBarray; //None リテラル //汎用プロシージャ procedure Set24bit(Src,Dest :TBitmap); function Set255(Value : integer) : BYTE; implementation ///////// procedure Set24bit(Src,Dest :Tbitmap); begin Src.PixelFormat :=pf24bit; Dest.PixelFormat:=pf24bit; Dest.Width:=Src.Width; Dest.Height:=Src.Height; end; ///////// function Set255(Value:Integer):Byte; begin if Value>=255 then Result:=255 else if Value<=0 then Result:=0 else Result:=Value; end; end.
[トランプ逆反転の関数]
//------------------------------------------------------------------------------ //■関数名 EffectLightMode //■用途 明るさ調整 //■引数 hBMP ... ビットマップのハンドル // Value ... (-255..0..255) //■戻り値 // 新しいビットマップのハンドル //------------------------------------------------------------------------------ function EffectLightMode(hBMP :HBitmap;Value:Integer):HBitmap; var Row,Col : Integer; SrcRow,DestRow : pRGBArray; SrcBitmap,DestBitmap : TBitmap; begin SrcBitmap :=TBitmap.Create; DestBitmap :=TBitmap.Create; SrcBitmap.Handle :=hBMP; Set24bit(SrcBitmap,DestBitmap); try for Row := 0 to SrcBitmap.Height - 1 do begin SrcRow := SrcBitmap.Scanline[Row]; DestRow := DestBitmap.Scanline[Row]; for Col := 0 to SrcBitmap.Width - 1 do begin //各RGBにValueを足す DestRow[Col].rgbtRed :=Set255(SrcRow[Col].rgbtRed+Value); DestRow[Col].rgbtGreen :=Set255(SrcRow[Col].rgbtGreen+Value); DestRow[Col].rgbtBlue :=Set255(SrcRow[Col].rgbtBlue+Value) ; end; end; Result :=DestBitmap.ReleaseHandle; except Result :=SrcBitmap.ReleaseHandle; end; SrcBitmap.Free ; DestBitmap.Free; end;
[関数の呼び出し]
procedure TForm1.Button1Click(Sender: TObject); begin Image1.Picture.bitmap.Handle:= 関数名(Image1.Picture.Bitmap.ReleaseHandle); end;
スポンサーリンク
関連記事
前の記事: | 画像をシフトするサンプルコード |
次の記事: | 画像を二階調化(モノクロ)するサンプルコード |
公開日:2015年02月18日 最終更新日:2015年02月19日
記事NO:00233
この記事を書いた人
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
プチモンテ代表、アーティスト名:プチモンテ | |
🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は叙情詩、叙情的な楽曲が多い。楽曲制作は2023年12月中旬 ~ |
オリジナル曲を始めました✨
YouTubeで各楽曲を公開しています🌈
https://www.youtube.com/@petitmonte