定义如下:
YData[c][d]:array of array of Byte;
HimgData[a][b]:array of array of Byte;YData[c][d]:=(299*HimgData[a][b]+587*HimgData[a][b+1]+114*HimgData[a][b+2])div 1000;//可为什么运行的时候这行会出错是类型出问题吗?还是其他?
YData[c][d]:array of array of Byte;
HimgData[a][b]:array of array of Byte;YData[c][d]:=(299*HimgData[a][b]+587*HimgData[a][b+1]+114*HimgData[a][b+2])div 1000;//可为什么运行的时候这行会出错是类型出问题吗?还是其他?
解决方案 »
- 初学DELPHI,求解几个基本问题
- 自定义函数得不到控件的值呢?
- 如何中断idTCPCLient的请求??
- delphi中messagebox的使用方法
- 调用Dll的返回值问题
- 刚用quickrep的人问大家一个简单的问题,谢谢
- [菜鸟提问]今天我要崩溃了~~~~~~~~~~~
- 两个ACCESS数据库如何将一个的数据合并到另一个!
- 有谁能给个ado控件实现master/detail表的简单例子程序,我将感激不禁
- 一个ADOquery控件的问题?
- 急用!缺少Microsoft FoxPro VFP Driver (*.dbf)怎么办?
- 关于使用.FieldByName('num').IsNull的问题?
我没尝试,你看行不行
YData[c][d]:=Byte(integer((299*HimgData[a][b]+587*HimgData[a][b+1]+114*HimgData[a][b+2]))div 1000);//
:
因为我定义的数组是用来做图象处理的,对8位图来说,一个字节类型刚好呀,而要换成integer 就挺麻烦的.
我也按:YData[c][d]:=Byte(integer((299*HimgData[a][b]+587*HimgData[a][b+1]+114*HimgData[a][b+2]))div 1000);的方法调试了,结果错误是一样的,不知道为什么?
d:=0;
b:=-2;
setlength(YData,imgsize );
setlength(UData,imgsize );
setlength(VData,imgsize );
for a:=0 to (LineBytes-1) do
begin
for b:=b+2 to (bi.biHeight-1)do
begin
YData[c][d]:=Byte((299*integer(HimgData[a][b])+587*integer(HimgData[a][b+1])+114*integer(HimgData[a][b+2])) div 1000);
UData[c][d]:=Byte((-169*integer(HimgData[a][b])-331*integer(HimgData[a][b+1])+500*integer(HimgData[a][b+2]))div 1000);
VData[c][d]:=Byte((500*integer(HimgData[a][b])-419*integer(HimgData[a][b+1])-81*integer(HimgData[a][b+2]))div 1000);
inc(d);
end;
inc(c);