2种颜色叠加 怎么算的? RGB方式的 怎么计算叠加后的颜色 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Function NewColor(color1,color2:Tcolor):TColor;typeTRGB=packed record R:Byte ; G:Byte ; B:Byte ; A:Byte ;end ;var p1:^TRGB ; p2:^TRGB ; P3:^TRGB ;begin Result := color1 ; P1 :=@color1 ; P2 :=@color2 ; P3 := @Result ; p3.R := (P1^.R+P2^.R) div 2 ; p3.G := (P1^.G+P2^.G) div 2 ; p3.B := (P1^.B+P2^.B) div 2 ;end; p3.R := (P1^.R+P2^.R) div 2 ; p3.G := (P1^.G+P2^.G) div 2 ; p3.B := (P1^.B+P2^.B) div 2 ;这个写法是否存在溢出问题?都是Byte,试想:P1^.R:= 127;P2^.R:= 127;那么 p3.R= (127+127) div 2= 254 div 2 = 127但是如果P1^.R:= 128;P2^.R:= 128;那么 p3.R= (128+128) div 2= 0 div 2 = 0; (Byte 的256就是0 ,因为溢出了)是不是存在这个问题? pazee(耙子) >>你錯了, 兩個Byte 求平均數是不會溢出的(128+128) div 2<> 0!!!!(128+128) div 2 = 128 !! :) 变量代入内嵌汇编怎么就不对了呢…… 如何实现对文件操作的监控? 关于子窗口问题!急啊!!!!!! 怎样计算某一列的和? 最低级问题 如何向已知句柄的窗口发送文本? 请高手赐招! 陏闷,散分!顺便问一下,做三层结构要注意的地方,比如接口的封装等。 DBNavigator問題: 如何让delphi 的record采用8字节对起方式? 请问Rave中的报表怎么显示不了中文,全是问号,怎么办? 一个新手的问题——AdoQuery组件使用Insert命令的疑问??
type
TRGB=packed record
R:Byte ;
G:Byte ;
B:Byte ;
A:Byte ;
end ;
var
p1:^TRGB ;
p2:^TRGB ;
P3:^TRGB ;
begin
Result := color1 ;
P1 :=@color1 ;
P2 :=@color2 ;
P3 := @Result ;
p3.R := (P1^.R+P2^.R) div 2 ;
p3.G := (P1^.G+P2^.G) div 2 ;
p3.B := (P1^.B+P2^.B) div 2 ;
end;
p3.G := (P1^.G+P2^.G) div 2 ;
p3.B := (P1^.B+P2^.B) div 2 ;这个写法是否存在溢出问题?
都是Byte,
试想:
P1^.R:= 127;
P2^.R:= 127;
那么 p3.R= (127+127) div 2= 254 div 2 = 127但是如果
P1^.R:= 128;
P2^.R:= 128;
那么 p3.R= (128+128) div 2= 0 div 2 = 0;
(Byte 的256就是0 ,因为溢出了)是不是存在这个问题?
>>你錯了, 兩個Byte 求平均數是不會溢出的(128+128) div 2<> 0!!!!
(128+128) div 2 = 128 !! :)