帮忙看一个程序解决办法
帮忙看一个程序
shang:=tbm.Height;
you:=0;
xia:=0;
zuo:=tbm.Width;
for h:=5 to tbm.Height-5 do
begin
//row:=tbm.ScanLine[h];
for w:=5 to tbm.Width-5 do
begin
if tbm.Canvas.Pixels[h,w]<>clblack then
begin
if w<zuo then
zuo:=w;
if w>you then
you:= w;
if h>xia then
xia:=h;
if h<shang then
shang:=h;
//找出非黑的最大最小像素
end;
end;
end; 这个图片是黑色背景中间一个红色球体 要找出球体范围 但是总是不对 为什么
------解决方案--------------------
背景为全黑没问题的话, 改一下这里: tbm.Canvas.Pixels[h, w]
括号里是先写横坐标, 再写纵坐标, 所以应该改成: tbm.Canvas.Pixels[w, h]
shang:=tbm.Height;
you:=0;
xia:=0;
zuo:=tbm.Width;
for h:=5 to tbm.Height-5 do
begin
//row:=tbm.ScanLine[h];
for w:=5 to tbm.Width-5 do
begin
if tbm.Canvas.Pixels[h,w]<>clblack then
begin
if w<zuo then
zuo:=w;
if w>you then
you:= w;
if h>xia then
xia:=h;
if h<shang then
shang:=h;
//找出非黑的最大最小像素
end;
end;
end; 这个图片是黑色背景中间一个红色球体 要找出球体范围 但是总是不对 为什么
------解决方案--------------------
背景为全黑没问题的话, 改一下这里: tbm.Canvas.Pixels[h, w]
括号里是先写横坐标, 再写纵坐标, 所以应该改成: tbm.Canvas.Pixels[w, h]