掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
座標の4点を習得することについて (ID:28670)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>for j:=0 to AfterBmp.Height-1 do >begin > Ap := AfterBmp.ScanLine[j]; //2値画像の列ポインタ取得 > for i:=0 to AfterBmp.Width-1 do > begin > //画素が黒でラベル付けされていない場合 > if (Ap[i*3] = 0) and (Image[i,j] = 0) then > begin ここで I*3 しているのは何故ですか? pf1bitの場合 1Byte に 8ドット分の情報が書かれています I*3の位置を見に行くわけでビットマップ領域外を見に行ってますよ? たとえば var A : pByteArray; begin Image1.Picture.Bitmap.PixelFormat := pf1bit; Image1.Picture.Bitmap.SetSize(100,100); Image1.Picture.Bitmap.Canvas.Pen.Color := $01000001; Image1.Picture.Bitmap.Canvas.Brush.Color := $01000000; Image1.Picture.Bitmap.Canvas.FillRect(Rect(0,0,100,100)); Image1.Picture.Bitmap.Canvas.MoveTo(2,0); Image1.Picture.Bitmap.Canvas.LineTo(2,10); A := Image1.Picture.Bitmap.ScanLine[0]; Caption := IntToStr(A[0]); end; 等として MoveTo と LineTo の位置をずらすと分かると思います 0=128 1=64 2=32 3=16 4=8 5=4 6=2 7=1
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.