2017年3月10日金曜日

[UWSC]画像が表示された中心座標を返す関数 [自作関数]

初心者のプログラミング導入のため、簡単な自作関数を作って公開しているブログ。前回ビットマップ画像の幅と高さを得る関数を作ったので、その前回の表示画像の座標を返す関数を改良します。

記事の内容

○画像が表示された中心座標を返す関数

前回、ビットマップ画像の幅と高さを得る関数を作成したので、そのまた前回に作った表示画像の座標を得る関数を中心座標を返すように改良します。

画像が表示された中心座標を返す関数

関数の仕様とソースは、
FUNCTION imgxyc(m,pic)//m:色幅指定、pic:ビットマップファイルのパス
    dim xy[1]
    find=0
    wh=bmp(pic)
  select m
  case 1
   if CHKIMG(pic,,SX1,SY1,SX2,SY2,,IMG_MSK_BGR1)
    xy[0]=G_IMG_X+wh[0]/2
    xy[1]=G_IMG_Y+wh[1]/2
    find=1
   endif
  case 2
   if CHKIMG(pic,,SX1,SY1,SX2,SY2,,IMG_MSK_BGR2)
    xy[0]=G_IMG_X+wh[0]/2
    xy[1]=G_IMG_Y+wh[1]/2
    find=1
   endif
  case 3
   if CHKIMG(pic,,SX1,SY1,SX2,SY2,,IMG_MSK_BGR3)
    xy[0]=G_IMG_X+wh[0]/2
    xy[1]=G_IMG_Y+wh[1]/2
    find=1
   endif
  case 4
   if CHKIMG(pic,,SX1,SY1,SX2,SY2,,IMG_MSK_BGR4)
    xy[0]=G_IMG_X+wh[0]/2
    xy[1]=G_IMG_Y+wh[1]/2
    find=1
   endif
  selend
   if find=0
    xy[0]=0
    xy[1]=0
   endif
    RESULT=slice(xy,0,LENGTH(xy)-1)
FEND

呼び出し側は、
    xy=imgxyc(4,"C:\poku\ポク太郎アイコン.bmp")//4は色幅の指定です
    x=xy[0]//見つかった位置のx座標(画像の中心)が入る
    y=xy[1]//見つかった位置のy座標(画像の中心)が入る



プログラムの説明

前々回の記事とほぼ一緒です。
4行目で、
wh=bmp(pic)
として、前回の関数に画像のパスを渡しています。こうするとwh[0]には画像の幅、 wh[1]には画像の高さが入ります。
それを画像が見つかった座標にそれぞれ1/2づつ足し算しています。



記事の内容

記事の内容は伝わりましたでしょうか。
○画像が表示された中心座標を返す関数



関数群のダウンロードはこちら
func_poku.uwsのコメント欄に呼び出し方が書いてあります。


【関連記事】  [UWSC]BMP画像の幅と高さを得る関数
[UWSC]指定画像が表示された座標を返す関数
[UWSC]配列変数と関数
[UWSC]ファイル操作の関数

ビットマップ画像の縦横の中心座標

UWSC自作関数解説


スポンサーリンク



blogramのブログランキング



0 件のコメント:

コメントを投稿